gpt4 book ai didi

c++ - C++模板中的隐式类型转换

转载 作者:搜寻专家 更新时间:2023-10-30 23:54:02 26 4
gpt4 key购买 nike

我有一个函数模板:

template<typename T>
void fun(T a, T b){
.......
}

int a = 0;
double b = 1.2;
f(a, b);

a可以自动转为double吗?

最佳答案

can a be converted to double automatically?

不,因为它在 fun<int> 之间不明确和 fun<double> , 在推断 T 的类型时在 template argument deduction .

您可以明确指定模板参数,使a隐式转换为 double :

int a = 0;
double b = 1.2;
fun<double>(a, b);

或添加显式转换,使模板参数推导明确:

int a = 0;
double b = 1.2;
fun(static_cast<double>(a), b);

关于c++ - C++模板中的隐式类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36649033/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com