Podemos ter uma função com vários tipos de retorno?(em C++ 11 e superior)




function c++11 (2)

Estou tentando escrever uma função genérica que recebe entrada como uint8 , uint16 , uint32 , uint64 , .... e retornar o valor máximo com o tipo de dados do maior elemento?

Por exemplo:

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

PS: este exemplo assume que o maior elemento é do maior tipo de dados.


Aqui está um exemplo de solução com 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