我有一个功能模板:
template<typename T>
void fun(T a, T b){
.......
}
int a = 0;
double b = 1.2;
f(a, b);
Run Code Online (Sandbox Code Playgroud)
可以自动转换为双倍?
可以自动转换为双倍?
不,因为它的暧昧之间fun<int>和fun<double>,推断的类型时,T在模板参数推导.
您可以显式指定模板参数,以a隐式转换为double:
int a = 0;
double b = 1.2;
fun<double>(a, b);
Run Code Online (Sandbox Code Playgroud)
或添加显式转换,以使模板参数推断明确:
int a = 0;
double b = 1.2;
fun(static_cast<double>(a), b);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
211 次 |
| 最近记录: |