相关疑难解决方法(0)

为什么模板函数只基于返回类型才能在C++上运行?

据我所知,重载函数必须包含不同的参数(类型或计数).所以我认为模板函数不应该只基于返回类型.但是以下代码可以使用GCC 6.3.0.

#include <iostream>
using namespace std;

template<typename T>
T add(double a, double b)
{
    return static_cast<T>(a + b); 
}

int main()
{
    cout << add<int>(1.1, 1) << endl;
    cout << add<double>(1.1, 1) << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

构建并运行:

g++ -g -o test test.cpp
./test
2
2.1
Run Code Online (Sandbox Code Playgroud)

剂量C++标准澄清了这一点?谢谢!

c++ templates

8
推荐指数
1
解决办法
211
查看次数

标签 统计

c++ ×1

templates ×1