gpt4 book ai didi

c++ - 在 C++ 中使用模板特化

转载 作者:太空宇宙 更新时间:2023-11-03 10:21:09 24 4
gpt4 key购买 nike

如何使用具有 2 种不同输入类型和输出类型的模板特化来编写函数:

template <class input1, class input2, class output>

并返回 2 个数字(整数/ double )的总和。但是,如果我得到 2 个整数,我想返回一个整数类型,但对于整数和 double 的任何其他组合,我将始终返回 double 。

我正在尝试不直接使用“+”运算符而是使用下一个函数来做到这一点:

double add_double_double(double a, double b) {return (a+b);}
double add_int_double(int a, double b) {return ((double)(a)+b);}
int add_int_int(int a, int b) {return (a+b);}

最佳答案

如果你可以使用 C++0x,你可以这样做:

template <typename T, typename U>
auto add(T lhs, U rhs) -> decltype(lhs+rhs)
{
return lhs+rhs;
}

关于c++ - 在 C++ 中使用模板特化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4641364/

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