0

汎用ポインター型に対する 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
4

3 に答える 3