Espacios de nombres
Variantes
Acciones

Apoyo de tipos (tipos básicos, RTTI, rasgos de tipo)

De cppreference.com
< cpp
 
 
Biblioteca de servicios
 
Apoyo de tipos
Tipos básicos
Tipos fundamentales
Tipos enteros de anchura fija (C++11)
Límites numéricos
Interfaz de C de límites numéricos
Información de tipo
en tiempo de ejecución
Rasgos de tipos
Categorías de tipos
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Propiedades de tipos
(C++11)
(C++11)
(C++14)
(C++11)
(C++11)(hasta C++20)
(C++11)(en desuso en C++20)
(C++11)
Constantes de rasgos de tipos
Metafunciones
(C++17)
Contexto de evaluación constante
Operaciones soportadas
Relaciones y consultas de propiedades
Modificaciones de tipos
(C++11)(C++11)(C++11)
Transformaciones de tipos
(C++11)
(C++11)
(C++17)
(C++11)(hasta C++20)(C++17)
 

(Véase también tipo para una visión general del sistema de tipos)

Contenido

[editar] Tipos básicos

[editar] Tipos fundamentales definidos por el lenguaje

[editar] Tipos básicos y macros adicionales

Definido en el archivo de encabezado <cstddef>
Tipo entero sin signo devuelto por el operador sizeof.
(typedef) [editar]
Tipo entero con signo devuelto al restar dos punteros.
(typedef) [editar]
(C++11)
El tipo del literal nullptr.
(typedef) [editar]
Constante de puntero nulo definido por la implementación.
(constante de macro) [editar]
Tipo de datos simple con requerimiento de alineación tan grande como cualquier otro tipo escalar.
(typedef) [editar]
Desplazamiento de bytes desde el comienzo de un tipo de diseño estándar al miembro especificado.
(macro de función) [editar]
(C++17)
El tipo byte.
(enum) [editar]
Definido en el archivo de encabezado <cstdbool> (hasta C++20)
Definido en el archivo de encabezado <stdbool.h>
__bool_true_false_are_defined
(C++11)(en desuso en C++17)
Constante de macro para compatibilidad con C, se expande al literal entero 1
(constante de macro) [editar]
Definido en el archivo de encabezado <cstdalign> (hasta C++20)
Definido en el archivo de encabezado <stdalign.h>
__alignas_is_defined
(C++11)(en desuso en C++17)
Constante de macro para compatibilidad con C, se expande al literal entero 1
(constante de macro) [editar]

[editar] Tipos enteros de anchura fija (desde C++11)

[editar] Límites numéricos

Definido en el archivo de encabezado <limits>
Proporciona una interfaz para consultar las propiedades de todos los tipos numéricos fundamentales.
(plantilla de clase) [editar]

[editar] Interfaz de límites numéricos de C

[editar] Identificación de tipo en tiempo de ejecución (RTTI)

Contiene la información de algún tipo generada por la implementación.
Esta es la clase devuelta por el operador typeid.
(clase) [editar]
Envoltura alrededor de un objeto type_info, que se puede utilizar como un subíndice en contenedores asociativos y contenedores asociativos no ordenados.
(clase) [editar]
Excepción que se produce cuando un argumento en una expresión typeid es nulo.
(clase) [editar]
Excepción que se produce por una expresión dynamic_cast inválida. Por ejemplo, en una conversión de tipo de referencia fallida.
(clase) [editar]

[editar] Rasgos de tipo (desde C++11)

Los rasgos de tipo definen una interfaz basada en plantillas en tiempo de compilación para consultar o modificar las propiedades de los tipos.

Intentar especializar una plantilla definida en el archivo de encabezado <type_traits> resulta en comportamiento indefinido, excepto que std::common_type puede especializarse.

Una plantilla definida en el encabezado <type_traits> puede instanciarse con un tipo incompleto a menos que se especifique lo contrario, a pesar de la prohibición general de crear instancias de plantillas de biblioteca estándar con tipos incompletos.

[editar] Propiedades de tipos

Definido en el archivo de encabezado <type_traits>
Categorías de tipo primarias
(C++11)
Comprueba si un tipo es void
(plantilla de clase) [editar]
Comprueba si un tipo es std::nullptr_t
(plantilla de clase) [editar]
Comprueba si un tipo T es entero.
(plantilla de clase) [editar]
Comprueba si un tipo T es de punto flotante
(plantilla de clase) [editar]
(C++11)
Comprueba si un tipo es un tipo array
(plantilla de clase) [editar]
(C++11)
Comprueba si un tipo es un tipo enumeración
(plantilla de clase) [editar]
(C++11)
Comprueba si un tipo es un tipo unión
(plantilla de clase) [editar]
(C++11)
Comprueba si un tipo es un tipo clase (pero no un tipo unión).
(plantilla de clase) [editar]
Comprueba si un tipo es un tipo función
(plantilla de clase) [editar]
Comprueba si un tipo es un tipo puntero
(plantilla de clase) [editar]
Comprueba si un tipo es una referencia lvalue.
(plantilla de clase) [editar]
Comprueba si un tipo es una referencia rvalue.
(plantilla de clase) [editar]
Comprueba si un tipo es un puntero a un objeto miembro no estático
(plantilla de clase) [editar]
Comprueba si un tipo es un puntero a una función miembro no estática
(plantilla de clase) [editar]
Categorías de tipo compuestas
Comprueba si un tipo es un tipo fundamental
(plantilla de clase) [editar]
Comprueba si un tipo es de tipo aritmético
Original:
checks if a type is arithmetic type
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(plantilla de clase) [editar]
(C++11)
Comprueba si un tipo es de tipo escalar
Original:
checks if a type is scalar type
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(plantilla de clase) [editar]
(C++11)
Comprueba si un tipo es un tipo objeto
(plantilla de clase) [editar]
Comprueba si un tipo es de tipo compuesto
Original:
checks if a type is compound type
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(plantilla de clase) [editar]
Comprueba si un tipo es o bien una referencia lvalue o una referencia rvalue
(plantilla de clase) [editar]
Comprueba si un tipo es un puntero a una función miembro no estática o a un objeto miembro no estático.
(plantilla de clase) [editar]
Propiedades de tipos
(C++11)
Comprueba si un tipo está calificado con el calificador const
(plantilla de clase) [editar]
Comprueba si un tipo está calificado con el calificador volatile
(plantilla de clase) [editar]
Comprueba si un tipo es trivial
Original:
checks if a type is trivial
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(plantilla de clase) [editar]
Comprueba si un tipo es trivialmente copiable.
(plantilla de clase) [editar]
Comprueba si un tipo es un tipo de diseño estándar.
(plantilla de clase) [editar]
(C++11)
Comprueba si un tipo es un tipo simple (POD).
(plantilla de clase) [editar]
Comprueba si un tipo es un tipo literal.
(plantilla de clase) [editar]
Comprueba si cada bit en la representación de objeto del tipo contribuye a su valor.
(plantilla de clase) [editar]
(C++11)
Comprueba si un tipo es un tipo de clase que no es una unión y no tiene datos.
(plantilla de clase) [editar]
Comprueba si un tipo es tipo clase polimórfico
(plantilla de clase) [editar]
Comprueba si un tipo es el tipo de clase abstracta
Original:
checks if a type is abstract class type
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(plantilla de clase) [editar]
(C++14)
Comprueba si un tipo es un tipo de clase final.
(plantilla de clase) [editar]
Comprueba si un tipo es un tipo de agregado.
(plantilla de clase) [editar]
(C++11)
Comprueba si un tipo es un tipo aritmético con signo.
(plantilla de clase) [editar]
Comprueba si un tipo es el tipo de aritmética sin signo
Original:
checks if a type is unsigned arithmetic type
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(plantilla de clase) [editar]
Comprueba si un tipo es un tipo de array de límite conocido.
(plantilla de clase) [editar]
Comprueba si un tipo es un tipo de array de límite desconocido.
(plantilla de clase) [editar]
Operaciones admitidas
Comprueba si un tipo tiene un constructor de argumentos concretos
Original:
checks if a type has a constructor for specific arguments
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(plantilla de clase) [editar]
Comprueba si un tipo tiene un constructor por defecto
Original:
checks if a type has a default constructor
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(plantilla de clase) [editar]
Comprueba si un tipo tiene un constructor de copia
Original:
checks if a type has a copy constructor
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(plantilla de clase) [editar]
Comprueba si un tipo tiene un constructor de movimiento
Original:
checks if a type has a move constructor
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(plantilla de clase) [editar]
Comprueba si un tipo tiene un operador de asignación para un argumento específico
Original:
checks if a type has a assignment operator for a specific argument
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(plantilla de clase) [editar]
Comprueba si un tipo tiene un operador de asignación de copia
Original:
checks if a type has a copy assignment operator
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(plantilla de clase) [editar]
Comprueba si un tipo tiene un operador de asignación de movimiento
Original:
checks if a type has a move assignment operator
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(plantilla de clase) [editar]
Comprueba si un tipo tiene un destructor no eliminado (e.g., = delete).
(plantilla de clase) [editar]
Comprueba si un tipo tiene un destructor virtual
Original:
checks if a type has a virtual destructor
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(plantilla de clase) [editar]
Comprueba si objetos de un tipo pueden intercambiarse con objetos del mismo tipo o diferente tipo.
(plantilla de clase) [editar]
Consultas de propiedades
Obtiene los requisitos de alineación del tipo
(plantilla de clase) [editar]
(C++11)
Obtiene el número de dimensiones de un tipo array
(plantilla de clase) [editar]
(C++11)
Obtiene el tamaño de un tipo array a lo largo de una dimensión especificada
(plantilla de clase) [editar]
Relaciones de tipos
(C++11)
Comprueba si dos tipos son los mismos
(plantilla de clase) [editar]
Comprueba si un tipo es derivado de otro tipo
(plantilla de clase) [editar]
Comprueba si un tipo puede convertirse a otro tipo.
(plantilla de clase) [editar]
Comprueba si un tipo puede invocarse (como si lo fuera por std::invoke) con el número de argumentos dado.
(plantilla de clase) [editar]
Comprueba si dos tipos tienen diseño compatible.
(plantilla de clase) [editar]
Comprueba si un tipo es una base (inicial) interconvertible-por-puntero a otro tipo.
(plantilla de clase) [editar]
Comprueba si los objetos de un tipo son interconvertibles-por-puntero con el subobjeto especificado de ese tipo.
(plantilla de función) [editar]
Comprueba si dos miembros especificados se corresponden mutuamente en la subsecuencia inicial común de dos tipos especificados.
(plantilla de función) [editar]

[editar] Modificaciones de tipos

Las plantillas de modificación de tipos crean nuevas definiciones de tipos al aplicar modificaciones en un parámetro de plantilla. El tipo resultante se puede acceder a través de la definición de tipo miembro type.

Definido en el archivo de encabezado <type_traits>
Especificadores const y volatilidad
Elimina los especificadores const y/o volatile del tipo dado.
(plantilla de clase) [editar]
(C++11)(C++11)(C++11)
Agrega los especificadores const y/o volatile al tipo dado
(plantilla de clase) [editar]
Referencias
Elimina la referencia de un tipo dado.
(plantilla de clase) [editar]
Añade referencia lvalue o rvalue al tipo dado.
(plantilla de clase) [editar]
Punteros
Elimina el puntero del tipo dado
(plantilla de clase) [editar]
Agrega puntero al tipo dado
(plantilla de clase) [editar]
Modificadores de signo
Hace al tipo entero dado con signo
(plantilla de clase) [editar]
Hace al tipo entero dado sin signo
(plantilla de clase) [editar]
Arrays
Elimina una dimensión del tipo array dado
(plantilla de clase) [editar]
Elimina todas las dimensiones del tipo array dado
(plantilla de clase) [editar]

[editar] Transformaciones misceláneas

Definido en el archivo de encabezado <type_traits>
Define el tipo adecuado para su uso como almacenamiento sin inicializar para tipos de un tamaño dado
(plantilla de clase) [editar]
Define el tipo adecuado para su uso como almacenamiento sin inicializar para todos los tipos dados
(plantilla de clase) [editar]
(C++11)
Aplica transformaciones de tipo como se cuando pasa un argumento de función por valor
(plantilla de clase) [editar]
Combina std::remove_cv y std::remove_reference.
(plantilla de clase) [editar]
(C++11)
Condicionalmente elimina una sobrecarga de función o especialización de plantilla de la resolución de sobrecargas.
(plantilla de clase) [editar]
Escoge un tipo u otro basado un tipo Booleano en tiempo de compilación
(plantilla de clase) [editar]
Deduce el tipo del resultado de una expresión aritmética mixta
(plantilla de clase) [editar]
Determina el tipo común de referencia de un grupo de tipos
(plantilla de clase) [editar]
Obtiene el tipo subyacente entero para un tipo enumeración dado
(plantilla de clase) [editar]
(C++11)
Deduce el tipo de retorno de una expresión de llamada a la función.
(plantilla de clase) [editar]
(C++17)
Plantilla de alias void variádica.
(plantilla de alias) [editar]
Devuelve el argumento del tipo sin modificarlo.
(plantilla de clase) [editar]

[editar] Operaciones en rasgos

Definido en el archivo de encabezado <type_traits>
Metafunción variádica de AND lógico.
(plantilla de clase) [editar]
Metafunción variádica de OR lógico.
(plantilla de clase) [editar]
(C++17)
Metafunción NOT lógico.
(plantilla de clase) [editar]

[editar] Clases auxiliares

Definido en el archivo de encabezado <type_traits>
Constante en tiempo de compilación del tipo especificado con el valor especificado.
(plantilla de clase) [editar]

Están disponibles dos especializaciones de std::integral_constant para el tipo bool:

Definido en el archivo de encabezado <type_traits>
Tipo Definición
true_type std::integral_constant<bool, true>
false_type std::integral_constant<bool, false>

[editar] Contexto de evaluación constante (desde C++20)

Definido en el archivo de encabezado <type_traits>
Detecta si la llamada ocurre dentro de un contexto evaluado constante.
(función) [editar]

[editar] Véase también

Documentación de C para Biblioteca de apoyo de tipos