[C++][중급] 멤버 함수의 포인터, invoke, mem_fn


[C++][중급] 멤버 함수의 포인터, invoke, mem_fn

이번에는 멤버 함수의 포인터 에 대해 알아볼까 합니다. 1. 멤버 함수 포인터란? 2. 멤버 함수 호출 방법 2.1 std::invoke() 2.2 std::mem_fn() 멤버 함수 포인터란? class X { public: void mf1(int a) {} static void mf2(int a) {} }; void foo(int a) {} int main() { void(*f1)(int) = &foo; // ok void(*f2)(int) = &X::mf1; // error void(*f3)(int) = &X::mf2; // ok } C언어에서의 함수 포인터 기억 나시나요? void(*f1)(int) = &foo; void(*f1)(int) 로 함수의 포인터를 가져오는데, void를 return 값으로 갖고, int 를 인자로 가진 함수의 포인터(주소)를 담는 표현이라고 생각하시면 됩니다. 그럼 X의 멤버함수인 mf1() 도 함수 형태가 foo()와 동일하니까 같은 방법으로 포...


#invoke #mem_fn #멤버함수포인터

원문링크 : [C++][중급] 멤버 함수의 포인터, invoke, mem_fn