根据下面的测试:
不是成员函数指针,而是普通函数,代码如下:
std::cout << std::is_member_function_pointer<int A::*()>::value << std::endl;
不是成员函数指针,而是普通函数,代码如下:
std::cout << std::is_member_function_pointer<int (A::*)()>::value << std::endl;
求值为true。我已经尝试了gcc和msvc。这两个声明之间有什么区别?这些结果是否正确?为什么在A :: *
周围加括号很重要?
(int A::*)()
,结果是否相同?请使用typeid
进行检查。 - Ulrich Eckhardt