定义模板函数的语法错误

Syntax error defining a template function

本文关键字:语法 错误 函数 定义      更新时间:2023-10-16

刚开始学习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;
}

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

在函数中,主"计算"未在该范围内声明

谁能帮助解释此错误的来源?

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

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

希望这有帮助!

一对牙套太多了。这对我有用:

#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;
}