以下带有多个参数的函数模板的返回类型应该是什么?

以下函数模板的返回类型应该是什么 -

#include<iostream>
using namespace std;

template <class T1, class T2>
returntype biggerNum(T1 num1 , T2 num2){
    if(num1>num2)
        return num1;
    return num2;
}

int main(){
    cout<<biggerNum(2,3.4);
    return 0;
}

回答

由于这两种类型将需要转换为一些常见的类型,你可以用std::common_type获得的普通型T1T2

template <class T1, class T2>
std::common_type_t<T1, T2> biggerNum(T1 num1 , T2 num2){
    if(num1>num2)
        return num1;
    return num2;
}

如果没有这样的类型,那么你会得到一个编译器错误。


以上是以下带有多个参数的函数模板的返回类型应该是什么?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>