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