Namespaces
Variants

Anotaciones (desde C++26)

De es.cppreference.net
 
 
Lenguaje C++
Temas generales
Control de flujo
Sentencias de ejecución condicional
if
Sentencias de iteración (bucles)
for
range-for (C++11)
Sentencias de salto
Funciones
Declaración de función
Expresión de función lambda
inline especificador
Especificaciones de excepción dinámicas (hasta C++17*)
noexcept especificador (C++11)
Excepciones
Espacios de nombres
Tipos
Especificadores
const/volatile
decltype (C++11)
auto (C++11)
constexpr (C++11)
consteval (C++20)
constinit (C++20)
Especificadores de duración de almacenamiento
Inicialización
Expresiones
Representaciones alternativas
Literales
Booleano - Entero - Punto flotante
Carácter - Cadena - nullptr (C++11)
Definidos por el usuario (C++11)
Utilidades
Atributos (C++11)
Tipos
typedef declaración
Declaración de alias de tipo (C++11)
Conversiones
Asignación de memoria
Clases
Propiedades de función específicas de clase
explicit (C++11)
static

Funciones miembro especiales
Plantillas
Misceláneo
 

Adjunta información a las declaraciones de una manera que la reflexión pueda observar.

Sintaxis

La lista de anotaciones se introduce en un especificador de atributo. Cada anotación comienza con =.

= constant-expression

Explicación

Una anotación puede aplicarse a cualquier declaración de un tipo, alias de tipo, variable, función, parámetro de función de tipo no void, espacio de nombres, enumerador, base-specifier o miembro de datos no estático.

Sea E std::meta::reflect_constant(expr) (donde expr es la constant-expression), E debe ser una expresión constante. El resultado de E se puede observar llamando a std::meta::constant_of en la reflexión de la anotación.

Las anotaciones siempre son distintas entre sí, incluso si tienen valores equivalentes y se aplican a la misma declaración.

[[=42, =42]] int x;
static_assert(std::meta::annotations_of(^^x).size() == 2);

[[=42]] int f();
[[=24]] int f();
static_assert(std::meta::annotations_of(^^f).size() == 2);

Sustituir en una anotación no es un contexto inmediato.

Ejemplo

Véase también

obtiene las anotaciones que se aplican a la entidad reflejada
(función)
obtiene las anotaciones que se aplican a la entidad reflejada y tienen el tipo especificado
(función)