0

所以我有类似的东西:

template<int X>
class foo {

char a[X];

...

}

我有另一个类'bar',其中包含如下功能:

void execute(foo &b); 

它应该在 foo 中的 char 数组上执行任务,但它给了我一个错误,说它是一个模板类,但使用了类似的东西:

void execute(foo<int> &b); 

也给出了错误。我不确定如何准确传递它,因为唯一不会给我错误的是,如果我静态地给它一个值,例如:

void execute(foo<4> &b);

非常感谢!

4

1 回答 1

5

非类型模板参数应该在编译时知道。对函数的正确调用将类似于

template<int N>
void execute(foo<N>& b);

// call
foo<4> b;
execute(b);
于 2013-11-05T06:46:24.817 回答