在c ++中将模板类引用作为参数传递

时间:2013-11-05 06:43:38

标签: c++ templates

所以我有类似的东西:

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);

非常感谢!

1 个答案:

答案 0 :(得分:5)

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

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

// call
foo<4> b;
execute(b);