std::alignment_of - cppreference.com
De cppreference.com
|
|
(desde C++11) | |
Proporciona la constante miembro value igual al requerimiento de alineación del tipo T, como si se obtuviera por una expresión alignof. Si T es un tipo array, devuelve los requerimientos de alineación del tipo de elemento. Si T es un tipo referencia, devuelve los requerimientos de alineación del tipo al que se hace referencia.
Si alignof(T) no es una expresión válida, el comportamiento está indefinido.
El comportamiento de un programa que añade especializaciones para alignment_of o alignment_of_v (desde C++17) no está definido.
Plantilla de variable auxiliar
|
|
(desde C++17) | |
Heredado de std::integral_constant
Constantes miembro
alignof(T) (constante miembro pública estática) |
Funciones miembro
Convierte el objeto a std::size_t, devuelve value. (función miembro pública) | |
Devuelve value. (función miembro pública) |
Tipos miembro
| Tipo | Definición |
value_type
|
std::size_t
|
type
|
std::integral_constant<std::size_t, value>
|
Posible implementación
template< class T > struct alignment_of : std::integral_constant< std::size_t, alignof(T) > {};
Notas
Este rasgo de tipo es anterior a la palabra clave alignof, que puede usarse para obtener el mismo valor con menos verbosidad.
Ejemplo
#include <cstdint> #include <iostream> #include <type_traits> struct A {}; struct B { std::int8_t p; std::int16_t q; }; int main() { std::cout << std::alignment_of<A>::value << ' '; std::cout << std::alignment_of<B>::value << ' '; std::cout << std::alignment_of<int>() << ' '; // sintaxis alterna std::cout << std::alignment_of_v<double> << '\n'; // sintaxis alterna de C++17 }
Posible salida:
Véase también
operador alignof(C++11)
|
Consulta los requerimientos de alineación de un tipo (desde C++11) [editar] |
especificador alignas(C++11)
|
Especifica que el almacenamiento para la variable debe estar alineado por la cantidad específica [editar] |
| Define el tipo adecuado para su uso como almacenamiento sin inicializar para tipos de un tamaño dado (plantilla de clase) [editar] | |
| Define el tipo adecuado para su uso como almacenamiento sin inicializar para todos los tipos dados (plantilla de clase) [editar] | |
| Tipo de datos simple con requerimiento de alineación tan grande como cualquier otro tipo escalar. (typedef) [editar] |