是否可以将之前计算的动态值传递到C ++中的模板中? 像这样:
array<double, INITIAL_SIZE_N * 5> arrayRef;
我只是得到表达式需要一个常量值错误。
答案 0 :(得分:2)
模板参数必须是常量表达式,以便在编译期间实例化模板时确定array
具有固定大小。
如果INITIAL_SIZE_N
是常量,那么这个表达式也是如此,所以没关系。如果它是变量,那么你将得到你描述的错误。
如果需要动态数组,请使用动态数组
vector<double> arrayRef(INITIAL_SIZE_N * 5);
答案 1 :(得分:1)
没有。模板是编译时构造。