std::meta::alignment_of
| Definido en el encabezado <meta>
|
||
consteval std::size_t alignment_of( std::meta::info r );
|
(desde C++26) | |
Devuelve el requisito de alineación del tipo o (sub)objeto representado por r.
Parámetros
| r | - | un valor de reflexión |
Valor de retorno
Si r representa un tipo “referencia a T”, devuelve alignof(T*).
De lo contrario, si r representa un tipo U, devuelve alignof(U).
De lo contrario, si r representa una variable u objeto, devuelve el requisito de alineación de la variable u objeto.
De lo contrario, si r representa una relación de clase base directa, devuelve el requisito de alineación de la clase base (es decir, std::meta::alignment_of(std::meta::type_of(r))).
De lo contrario, si r representa un miembro de dato no estático M de una clase C, devuelve el requisito de alineación del subobjeto miembro directo correspondiente de un objeto completo de tipo C.
De lo contrario, r representa una descripción de miembro de dato, devuelve su valor de alineación si no es ⊥, o std::meta::alignment_of(std::meta::type_of(r)) en caso contrario.
Excepciones
Lanza std::meta::exception a menos que se cumplan todas las siguientes condiciones:
std::meta::dealias(r)representa uno de los siguientes:
- tipo
- objeto
- variable de tipo no referencia
- miembro de dato no estático que no sea un campo de bits
- relación de clase base directa
- descripción de miembro de dato cuyo ancho de bits es ⊥
- Si
std::meta::dealias(r)representa un tipo,std::meta::is_complete_type(r)estrue.
Notas
Esta función trata “referencia de T” de la misma manera que “puntero a T”. Esto coincide con la representación de los miembros de referencia no estáticos.
Ejemplo
| Esta sección está incompleta Razón: sin ejemplo |
Véase también
alignof (C++11)
|
consulta los requisitos de alineación de un tipo (operador) |