类型:
std::remove_pointer<int(*)(int)>::type
是int(int)
。这段代码:
#include <iostream>
#include <type_traits>
using namespace std;
int main()
{
cout << boolalpha;
cout << is_same<remove_pointer<int(*)(int)>, int(int)>::value;
cout << endl;
}
打印“真实”。但是,“函数成员”的(书面)类型是什么?
#include <iostream>
#include <type_trais>
using namespace std;
struct A {};
int main()
{
cout << boolalpha;
cout << is_same<remove_pointer<int(A::*)(int)>, int(int)>::value;
cout << endl;
}
返回false
。诸如int A::(int)
抛出编译错误(无效类型)之类的东西。