¿Podemos tener una función con múltiples tipos de retorno?(en C++ 11 y superior)




function c++11 (2)

Estoy tratando de escribir una función genérica que tome la entrada como uint8 , uint16 , uint32 , uint64 , .... y devuelva el valor máximo con el tipo de datos del elemento más grande.

Por ejemplo:

template < typename T, typename X>
auto Max_Number(T valueA, X valueB)
{
    if (valueA > valueB)
        return valueA;
    else
        return valueB;
}

PD: este ejemplo supone que el elemento más grande es del tipo de datos más grande.


Aquí hay una solución de ejemplo con std:: variant

template < typename T, typename X> 
std::variant<T, X>  Max_Number ( T valueA, X valueB )
{
    std::variant<T, X> res;
    if ( valueA > valueB ) 
       res = valueA; 
    else 
       res = valueB; 
    return res;
}







return-type