template<typename T>
struct hash;
template<typename T> class WUG{
public:
WUG(){
unordered_map<string,typename T,hash> vertexmap; //Problem
}
};
このコードには何の意味もありません。私はそれを正しく宣言すべきですか?文字列をテンプレートにマップするunordered_mapを宣言する際にエラーが発生する
私がいるエラーメッセージは次のとおりです。
[エラー]テンプレート引数2無効
[エラー]テンプレート引数5であるあなたは含めstd
な名前空間からすべての名前をインポートusing namespace std;
を持って無効
あなたは 'using namespace std;'を使っているようです。これにより、 'std :: hash'と宣言した' :: hash'との間に混乱が生じる可能性があります。 [MCVE]は順調です。さらに、コンパイラは 'T'が型を指定していることをよく知っています。これはテンプレート引数です。 –
あなたのマップは3つの引数で構成され、マップは2つしか取り込まれません。これはキーの値のペアのようです - map –
zenwraight
@zenwraightこれは間違っています。 ['std :: unordered_map'](http://en.cppreference.com/w/cpp/container/unordered_map)には最大5つのテンプレート引数があり、そのうち3つはデフォルト値を提供します。 –