Anotaciones (desde C++26)
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
| Esta sección está incompleta Razón: sin ejemplo |
Véase también
(C++26) |
obtiene las anotaciones que se aplican a la entidad reflejada (función) |
(C++26) |
obtiene las anotaciones que se aplican a la entidad reflejada y tienen el tipo especificado (función) |