定义模板函数的语法错误

时间:2014-01-06 02:42:48

标签: c++ templates

刚开始用C ++学习模板,我有一小段代码没有编译:

template <class gen_data>
{
    gen_data calculate(gen_data a, gen_data b)
    {
        return a+b;
    } 
}

int main()
{
    int c,d;
    cout<<"The sum is: "<<calculate(c,d)<<endl;
    return 0;
}

当我编译它时,它给了我一个错误

  功能主'计算'中的

未在该范围内声明

任何人都可以帮忙解释这个错误的来源吗?

2 个答案:

答案 0 :(得分:4)

声明模板函数的语法错误。围绕calculate功能不应该有大括号。尝试重写它:

template <class gen_data> gen_data calculate(gen_data a, gen_data b)
{
    return a+b;
} 

希望这有帮助!

答案 1 :(得分:1)

你有一对括号太多了。这对我有用:

#include <iostream>

template <class gen_data>
gen_data calculate(gen_data a, gen_data b) {
 return a+b;
}

int main() {
 int c = 1, d = 2;
 std::cout<<"The sum is: "<<calculate(c,d)<<std::endl;
 return 0;
}