我目前正在做一些涉及类模板的C ++项目。我想创建一个递归函数,使用模板值,但我编译器(Visual Studio 2015)给我一个错误:" C1202:递归类型或函数依赖关系上下文过于复杂"
以下是有罪的功能:
template<unsigned int Size>
double Matrice<Size>::determinant()
{
switch (Size)
{
case 2: return data[0] * data[3] - data[1] * data[2];
case 3: return data[0] * (data[4] * data[8] - data[5] * data[7])
- data[1] * (data[3] * data[8] - data[5] * data[6])
+ data[2] * (data[3] * data[7] - data[4] * data[6]);
default:
double sum = 0;
for (int k = 0; k < Size; k++)
{
sum += (1 - 2 * (k % 2)) * get(0, k) * subMat(0, k).determinant(); //alterner 1 et -1 : (-1)^n = 1-2*(n%2)
}
return sum;
}
}
提前感谢您的帮助。