Ya no necesitas buscar más en internet ya que estás al espacio justo, contamos con la respuesta que necesitas pero sin liarte.
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#include classA;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) |
¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 4.5)