티스토리 뷰

핵심

C++ Callable : ()를 붙여서 호출할 수 있는 모든 것

사용의 예

Ex1.

struct S 
{
    void operator()(int a, int b) { std::cout << "a + b = " << a + b << std::endl; }
};

int main()
{
    S some_obj; some_obj(3, 5);
}

Ex2.

int main()
{
    auto f = [](int a, int b) { std::cout << "a + b = " << a + b << std::endl; };
    f(3, 5);
}

상세 설명

위 예시가 모두 Callable 당연히 함수 또한 Callable 이다

함수 포인터는 함수들만 보관할 수 있는 객체라고 볼 수 있다면

std::function 의 경우 함수 뿐만이 아니라 모든 Callable 들을 보관할 수 있는 객체이다.

사용법

헤더 : #include

형식 : std::function<함수의 반환형(매개변수의 타입)> 객체이름 = 함수이름;

실제 사용 1 : std::function<int(char)> f1 = functionA;

실제 사용 2 : std::function<int(A&)> f1 = &A::somefunc; // (A&)가 가능한 이유 맴버함수들은 암묵적으로 호출한 객체를 받고있다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함