0

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

我的代码:

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);

错误是:错误:')'标记之前的预期主表达式

4

2 回答 2

2

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

vector<T> divisors = properDivisors(input);
//                                  ^^^^^
于 2013-10-16T13:46:32.770 回答
0

哈!对不起大家,问题是我应该写properDivisors(input)

愚蠢的小块错误......对不起......

于 2013-10-16T13:46:47.987 回答