2
컴파일러가 함수 f
대신에 functor를 f
이라고 부르는 규칙을 설명 할 수 있습니까?컴파일러가 동일한 이름을 가진 함수를 통해 functor를 선택했습니다.
#include <iostream>
struct A {
void operator()() { std::cout << "functor" << std::endl; }
};
void f() { std::cout << "function" << std::endl; }
int main()
{
A f;
f(); // Output: functor
}
A::operator()()
및 f()
는 오버로드하지, 그래서 내 생각이 오버로드 확인 이외의 일이다.