¿Hay alguna manera de obtener un equivalente sin signo (del mismo tamaño) de un tipo integral firmado en C++? Estoy pensando en la línea de:¿Cómo obtener el equivalente sin signo de un tipo integral en C++?
template<typename T>
struct get_unsigned { };
template<>
struct get_unsigned<int> {
typedef unsigned int type;
};
...
template<typename T>
void myfunc(T val) {
get_unsigned<T>::type u = std::abs(val);
...
}
Busco una solución existente en la biblioteca o refuerzo estándar y prefieren no poner mi propia a menos que sea un puñado de líneas.
Esto se agregó al stdlib en C++ 11 como, predeciblemente, 'std :: make_unsigned': http://www.cplusplus.com/reference/type_traits/make_unsigned/ –