汎用ポインター型に対する std::hash の特殊化は、メンバーへのポインターに使用できると思いますが、それをそのまま使用することはできません。代わりに、コンパイラが「不完全な型」エラーを表示します。これは、ポインターに std::hash の特殊化を使用していないことを意味すると思いますか? 何が起きてる?
#include <functional>
struct foo{
void bar(int a){}
};
int main(){
std::hash<void (foo::*)(int)> hasher;
}
エラー:
..\src\m.cpp:43:32: error: aggregate 'std::hash<void (foo::*)(int)> hasher' has incomplete type and cannot be defined