据我所知,重载函数必须包含不同的参数(类型或计数).所以我认为模板函数不应该只基于返回类型.但是以下代码可以使用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++标准澄清了这一点?谢谢!