Operador alignof (desde C++11)
De cppreference.com
Consulta los requerimientos de alineación de un tipo.
Contenido |
[editar] Sintaxis
alignof( id de tipo )
|
|||||||||
Devuelve un valor de tipo std::size_t.
[editar] Explicación
Devuelve la alineación, en bytes, requerida para cualquier instancia del tipo indicado por id de tipo, que es un tipo completo, tipo matriz, tipo referencia.
Si el tipo es un tipo referencia, el operador devuelve la alineación del tipo referenciado; si es un tipo matriz, se devuelve el requerimiento de alineación del tipo del elemento.
Los tipos char, signed char y unsigned char tienen la alineación más débil (más pequeña) soportada por la aplicación.
[editar] Palabra reservada
[editar] Notas
Ver alineación para el significado y las propiedades del valor devuelto por alignof
.
[editar] Ejemplo
Ejecuta este código
#include <iostream> struct Foo { int i; float f; char c; }; struct Empty {}; struct alignas(64) Empty64 {}; int main() { std::cout << "Alineación de" "\n" "- char : " << alignof(char) << "\n" "- pointer : " << alignof(int*) << "\n" "- class Foo : " << alignof(Foo) << "\n" "- empty class : " << alignof(Empty) << "\n" "- alignas(64) Empty: " << alignof(Empty64) << "\n"; }
Posible salida:
Alineación de - char : 1 - pointer : 8 - class Foo : 4 - empty class : 1 - alignas(64) Empty: 64
[editar] Ver también
requerimiento de alineación | restringe las direcciones a las que se puede asignar un objeto |
especificador alignas (C++11)
|
Especifica que el almacenamiento para la variable debe estar alineado por la cantidad específica |
(C++11) |
Obtiene los requisitos de alineación del tipo (plantilla de clase) |