Definido en el encabezado
template<classT>structis_unsigned;
(desde C ++ 11)

Si T es un tipo aritmético, proporciona la constante miembro value igual true Si T(0) < T(-1): esto resulta en true para los tipos de enteros sin signo y el tipo bool y en false para los tipos de enteros con signo y los tipos de punto flotante.

Para cualquier otro tipo, value es false.

Parámetros de plantilla

T - un tipo para comprobar

Plantilla de variable auxiliar

template<classT>inlineconstexprbool is_unsigned_v = is_unsigned<T>::value;
(desde C ++ 17)

Heredado de std :: integral_constant

Constantes de miembros

valor[static] true Si T es un tipo aritmético sin signo, false de lo contrario
(público static constante miembro)

Funciones de los miembros

operador bool convierte el objeto a bool, devoluciones value
(función de miembro público)
operador()(C ++ 14) devoluciones value
(función de miembro público)

Tipos de miembros

Escribe Definición
value_type bool
type std::integral_constant<bool, value>

Posible implementación

namespace detail template<typenameT,bool= std::is_arithmetic<T>::value>structis_unsigned:std::integral_constant<bool,T(0)<T(-1)>;template<typenameT>structis_unsigned<T,false>: std::false_type ;// namespace detailtemplate<typenameT>structis_unsigned:detail::is_unsigned<T>::type;

Ejemplo

#include#includeclassA;enumB:unsigned;enumclassC:unsigned;intmain()
    std::cout << std::boolalpha;
    std::cout << std::is_unsigned<A>::value <<'n';
    std::cout << std::is_unsigned<float>::value <<'n';
    std::cout << std::is_unsigned<signedint>::value <<'n';
    std::cout << std::is_unsigned<unsignedint>::value <<'n';
    std::cout << std::is_unsigned<B>::value <<'n';
    std::cout << std::is_unsigned<C>::value <<'n';

Producción:

false
false
false
true
false
false

Ver también

está firmado(C ++ 11) comprueba si un tipo es un tipo aritmético con signo
(plantilla de clase)
es_aritmética(C ++ 11) comprueba si un tipo es aritmético
(plantilla de clase)
make_signed(C ++ 11) hace que el tipo integral dado esté firmado
(plantilla de clase)
make_unsigned(C ++ 11) hace que el tipo integral dado no esté firmado
(plantilla de clase)