C ++模板:实例化对象时出错

时间:2014-05-04 17:29:38

标签: c++ templates

我尝试使用int Variable实例化一个类模板。 模板类:

template <int N>
class GRAPH {
    // ...
}

当我尝试这样做时:

    GRAPH<100> mygraph;

它工作正常。但是当我这样做时:

int maxVertices=100;
GRAPH<maxVertices> mygraph;

我收到以下错误:

';'之前的声明中的无效类型令牌

有人能帮助我吗?

THX

2 个答案:

答案 0 :(得分:2)

将您的代码更改为

const int maxVertices=100;
GRAPH<maxVertices> mygraph;

模板参数在编译时进行评估,因此您只能在此处将常量表达式作为模板参数传递。

答案 1 :(得分:0)

模板参数在编译时解析。由于maxVertices不是常量,因此在编译时不知道它的值,因此会出错。