Tro*_*yvs 3 c++ templates types overloading return
使用相同的模板声明,是否可以区分具有相同名称、相同参数列表但返回类型不同的两个函数?
template <class T>
int f()...
template <class T>
short f()...
或者,需要一些特殊的代码来实现这一点?
谢谢。
您确实可以拥有具有相同名称、相同参数类型和相同返回类型的函数模板(但对于常规函数则不能)。
template <class T>
int f() {/*..*/}
template <class T>
short f() {/*..*/}
但是他们的使用并不是很容易/很好:
auto i = static_cast<int(*)()>(&f<float>)(); // Call int f<float>
auto s = static_cast<short(*)()>(&f<float>)(); // Call short f<float>
| 归档时间: | 
 | 
| 查看次数: | 55 次 | 
| 最近记录: |