递归类型或函数依赖关系上下文太复杂

时间:2016-03-16 10:01:21

标签: c++ templates recursion

我目前正在做一些涉及类模板的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;
    }
}

提前感谢您的帮助。

0 个答案:

没有答案