模板元编程的困惑
功能:需要计算vec1[0] * vec2[0] + vec1[1] * vec2[1] + vec1[2] * vec2[2]……
代码如下:
[解决办法]
assert(vec1.size() == vec2.size());
cout << dot_product<vec1.size() - 1>(vec1, vec2) << endl;
[解决办法]
从文件读的话没办法,原因就是你说的。
[解决办法]
这个你不用试了,非类型整数实参必须是编译期常量。
此外,你举的这个例子其实不是模板元编程,模板元编程的数值计算都是编译期递归的,但你的例子属于执行期运算,充其量不过是模板函数的执行期递归而已。