std::meta::reflect_constant_array
| 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:
Tno es un tipo estructural.Tno satisface copy_constructible.Uno es un tipo arreglo, ystd::is_constructible_v<T, ranges::range_reference_t<R>>es falso.
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)siUes 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
ro en iteradores o centinelas der; - cualquier argumento de
std::meta::reflect_constanto cualquier llamada destd::meta::reflect_constant_arraydescrita 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
| Esta sección está incompleta Razón: sin ejemplo |
Véase también
(C++26) |
promueve un arreglo en tiempo de compilación a almacenamiento estático, devolviendo un span del arreglo estático (plantilla de función) |
(C++26) |
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) |
(C++26) |
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) |