Espacios de nombres
Variantes
Acciones

Biblioteca de conceptos (C++20)

De cppreference.com
< cpp

La biblioteca de conceptos proporciona definiciones de conceptos fundamentales de la biblioteca que pueden ser usados para realizar validación en tiempo de compilación de argumentos de plantilla y realizar despacho de funciones basado en las propiedades de los tipos. Estos conceptos proveen un cimiento para razonamiento en programas.

La mayoría de los conceptos en la biblioteca estándar imponen requerimientos tanto sintácticos como semánticos. En general, solamente los requerimientos sintácticos pueden ser comprobados por el compilador. Si un requerimiento semántico no se satisface en el punto de su uso, el programa está mal formado y no se requiere diagnóstico.

Definido en el archivo de encabezado <concepts>
Definido en el espacio de nombres std

Contenido

Conceptos del lenguaje centrales
(C++20)
Especifica que un tipo es el mismo que otro tipo.
(concepto) [editar]
Especifica que un tipo se deriva de otro tipo.
(concepto) [editar]
Especifica que un tipo es implícitamente convertible a otro tipo.
(concepto) [editar]
Especifica que dos tipos comparte un tipo de referencia común.
(concepto) [editar]
Especifica que dos tipos comparten un tipo común.
(concepto) [editar]
(C++20)
Especifica que un tipo es un tipo entero.
(concepto) [editar]
Especifica que un tipo es un tipo entero con signo.
(concepto) [editar]
Especifica que un tipo es un tipo entero que no tiene signo.
(concepto) [editar]
Especifica que un tipo es un tipo de punto flotante.
(concepto) [editar]
Especifica que un tipo es asignable desde otro tipo.
(concepto) [editar]
Especifica que un tipo puede ser intercambiado o que dos tipos pueden ser intercambiados uno con el otro.
(concepto) [editar]
Especifica que un objeto del tipo puede ser destruido.
(concepto) [editar]
Especifica que una variable del tipo puede ser construida desde un conjunto de argumentos o vinculada a un conjunto de argumentos.
(concepto) [editar]
Especifica que el objeto de un tipo puede ser construido usando el constructor por defecto.
(concepto) [editar]
Especifica que el objeto de un tipo puede construirse usando el constructor de movimiento.
(concepto) [editar]
Especifica que un objeto de un tipo puede construirse con el constructor de copia y el constructor de movimiento.
(concepto) [editar]
Conceptos de comparación
(C++20)
Especifica que un tipo puede ser usado en contextos Booleanos.
(concepto) [editar]
Especifica que el operador == es una relación de equivalencia.
(concepto) [editar]
Especifica que los operadores de comparación sobre el tipo producen un orden total.
(concepto) [editar]
Conceptos de objetos
(C++20)
Especifica que un objeto de un tipo puede ser movido e intercambiado.
(concepto) [editar]
(C++20)
Especifica que un objeto de un tipo puede ser copiado, movido, e intercambiado.
(concepto) [editar]
Especifca que un objeto de un tipo puede ser copiado, movido, intercambiado y construido usando el constructor por defecto.
(concepto) [editar]
(C++20)
Especifica que un tipo es regular. Es decir, es tanto semiregular como equality_comparable.
(concepto) [editar]
Conceptos que pueden ser llamados
Especifica que un tipo que puede ser llamado puede invocarse con un conjunto dado de tipos de argumento.
(concepto) [editar]
(C++20)
Especifica que un tipo que puede ser llamado es un predicado Booleano.
(concepto) [editar]
(C++20)
Especifica que un tipo que puede ser llamado es una relación binaria.
(concepto) [editar]
Especifica que una relación (relation) impone una relación de equivalencia.
(concepto) [editar]
Especifica que una relación (relation) impone un ordenamiento estricto débil.
(concepto) [editar]

Pueden encontrarse conceptos adicionales en la biblioteca de algoritmos y la biblioteca de rangos.