Namespaces
Variants

std::meta::reflect_constant_array

De es.cppreference.net
< cpp | meta
 
 
 
Biblioteca de reflexión
 
Tipos y consultas de reflexión
Consultas de reflexión
Consultas de diseño de reflexión
Propiedades de tipo
Consultas de propiedad de tipo
 
Definido en el encabezado <meta>
template< ranges::input_range R >
consteval std::meta::info reflect_constant_array( R&& r );
(desde C++26)

Devuelve una reflexión que representa un objeto arreglo cuyos elementos son elementos correspondientes de r.

El objeto resultante es un objeto parámetro de plantilla: tiene duración de almacenamiento estático, y los rangos con contenido equivalente de argumento de plantilla corresponden al mismo objeto.

Si el tamaño de r no es cero, el objeto arreglo resultante es un objeto potencialmente no único.

Sea U ranges::range_value_t<R> y T std::remove_all_extents_t<U>.

El programa está mal formado si se cumple alguna de las siguientes condiciones:

Parámetros

r - un input_range

Valor de retorno

Si el tamaño de r no es cero, una reflexión que representa un objeto parámetro de plantilla de tipo const T[N] (donde N es el tamaño de r). Cada elemento del objeto parámetro de plantilla es equivalente de argumento de plantilla a:

  • std::meta::reflect_constant_array(*it) si U es un tipo arreglo;
  • std::meta::reflect_constant(static_cast<T>(*it)) en caso contrario;

donde it es un iterador al elemento correspondiente de r.

En caso contrario (el tamaño de r es cero), una reflexión que representa el objeto parámetro de plantilla de tipo const std::array<T, 0> inicializado con {}.

Excepciones

Lanza cualquier excepción lanzada por:

  • una operación en r o en iteradores o centinelas de r;
  • cualquier argumento de std::meta::reflect_constant o cualquier llamada de std::meta::reflect_constant_array descrita anteriormente.

Lanza std::meta::exception si alguna invocación de std::meta::reflect_constant saliera a través de una excepción.

Notas

El resultado de std::meta::reflect_constant_array es adecuado para usarse con std::meta::substitute. Si el llamante desea una std::span de un arreglo estático, en lugar de un valor de reflexión, std::define_static_array suele ser más adecuado.

Ejemplo

Véase también

promueve un arreglo en tiempo de compilación a almacenamiento estático, devolviendo un span del arreglo estático
(plantilla de función)
promueve una cadena en tiempo de compilación a almacenamiento estático, devolviendo una reflexión que representa la cadena estática
(plantilla de función)
devuelve una reflexión que representa un valor u objeto parámetro de plantilla, adecuado para usar como argumento de plantilla constante
(plantilla de función)