c ++模板之前预期的主表达式

时间:2013-10-16 13:44:43

标签: c++ templates

我是模板的新手,在这里的论坛上找不到我的问题的答案,也许我只是不知道要搜索什么。

我的代码:

template<class T>
vector<T> properDivisors(T input) {
    vector<T>retVal;
    for(T d = T()+1;d<input;d++) {
        if((double)input/(double)d == input/d)
            retVal.push_back(d);
    }
    return retVal;
}

template<class T>
T sumTypeOf(T input) {
    vector<T>divisors = properDivisors(T);
    return someEnum;
}

编译时我在行上收到错误:

    vector<T>divisors = properDivisors(T);

错误是: 错误:')'令牌

之前的预期主要表达式

2 个答案:

答案 0 :(得分:2)

您需要传递值,而不是类型:

vector<T> divisors = properDivisors(input);
//                                  ^^^^^

答案 1 :(得分:0)

哈!对不起大家,问题是我应该写出适当的分区(输入)

愚蠢的小节错误...抱歉......