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

Tan*_*ari 2 c++ templates

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

#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;
}
Run Code Online (Sandbox Code Playgroud)

Nat*_*ica 7

由于这两种类型将需要转换为一些常见的类型,你可以用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;
}
Run Code Online (Sandbox Code Playgroud)

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