将动态值传递给模板的可能性

时间:2015-03-21 14:51:46

标签: c++ arrays templates

是否可以将之前计算的动态值传递到C ++中的模板中? 像这样:

array<double, INITIAL_SIZE_N * 5> arrayRef;

我只是得到表达式需要一个常量值错误。

2 个答案:

答案 0 :(得分:2)

模板参数必须是常量表达式,以便在编译期间实例化模板时确定array具有固定大小。

如果INITIAL_SIZE_N是常量,那么这个表达式也是如此,所以没关系。如果它是变量,那么你将得到你描述的错误。

如果需要动态数组,请使用动态数组

vector<double> arrayRef(INITIAL_SIZE_N * 5);

答案 1 :(得分:1)

没有。模板是编译时构造。