0%

同一个函数的返回值可以有多种类型吗

❓ 我正在尝试编写一个通用函数,将输入作为uint8uint16uint32uint64,….并以最大元素的数据类型返回最大值?

例如:

1
2
3
4
5
6
7
8
template < typename T, typename X>
auto Max_Number(T valueA, X valueB)
{
if (valueA > valueB)
return valueA;
else
return valueB;
}

P.S: 此示例假定最大元素具有最大数据类型。


✔️ 这是使用std::variant解决方案:

1
2
3
4
5
6
7
8
9
10
template < typename T, typename X> 
std::variant Max_Number ( T valueA, X valueB )
{
std::variant res;
if ( valueA > valueB )
res = valueA;
else
res = valueB;
return res;
}