C++ 에서 operator() 를 지원하는 모든 경우는 다음과 같다.

  • C 스타일의 함수
  • C 스타일의 함수 포인터
  • 함수에 대한 참조형. (함수 포인터의 const 형과 동일하게 작동)
  • 함수자. (operator() 연산자를 정의한 객체)
  • 식의 우변에 멤버 함수에 대한 포인터를 가지고 operator.* 이나 operator ->* 연산자를 적용한 결과

3번째 경우가 잘 이해가 안되는데.. 함수에 대한 참조형이라. 함수 포인터와는 다른의미인듯한데.. 쩝…

출처 : Modern C++ Design