我尝试使用int Variable实例化一个类模板。 模板类:
template <int N>
class GRAPH {
// ...
}
当我尝试这样做时:
GRAPH<100> mygraph;
它工作正常。但是当我这样做时:
int maxVertices=100;
GRAPH<maxVertices> mygraph;
我收到以下错误:
';'之前的声明中的无效类型令牌
有人能帮助我吗?
THX
答案 0 :(得分:2)
将您的代码更改为
const int maxVertices=100;
GRAPH<maxVertices> mygraph;
模板参数在编译时进行评估,因此您只能在此处将常量表达式作为模板参数传递。
答案 1 :(得分:0)
模板参数在编译时解析。由于maxVertices
不是常量,因此在编译时不知道它的值,因此会出错。