Operador alignof (desde C++11) - cppreference.com
De cppreference.com
Consulta los requerimientos de alineación de un tipo.
Sintaxis
alignof( id de tipo )
|
|||||||||
Devuelve un valor de tipo std::size_t.
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.
Palabra reservada
Notas
Ver alineación para el significado y las propiedades del valor devuelto por alignof.
Ejemplo
#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