【发布时间】:2017-06-06 15:27:30
【问题描述】:
template<typename T>
struct hash;
template<typename T> class WUG{
public:
WUG(){
unordered_map<string,typename T,hash> vertexmap; //Problem
}
};
我在这段代码中遇到了一些错误,这对我没有任何意义。如何正确申报?
我收到的错误消息是:
[错误] 模板参数 2 无效
[错误] 模板参数 5 无效
【问题讨论】:
-
您可能正在使用
using namespace std;。这可能会在std::hash和您声明的::hash之间造成一些混淆。 minimal reproducible example 是有序的。此外,编译器很清楚T命名了一个类型。这是一个模板参数。 -
你的地图由三个参数组成,一个地图只接受两个,它就像一个键值对 - map
-
@zenwraight 这是不正确的。
std::unordered_map可能有多达 5 个模板参数,其中 3 个提供默认值。 -
啊,我不知道,嗯,很高兴在这里学到一些东西
标签: c++ templates data-structures compiler-errors unordered-map