我尝试新的英特尔编译器2018与我在这里的其他编译器不同,这段代码失败了:
template<int power> double msqrT(double a) { return mpow(a, (double)power); };
template<> double msqrT<2>(double a) { return a*a; };
template<> double msqrT<3>(double a) { return a*a*a; };
template<> double msqrT<4>(double a) { return a*a*a*a; };
double x = msqrT<2>(y);
对于模板的每个专业化,最终都是:
error : no instance of function template "msqrT" matches the specified type
知道为什么吗?