Espacios de nombres
Variantes
Acciones

Operador alignof (desde C++11)

De cppreference.com
< cpp‎ | language

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

alignof

[editar] Notas

Ver alineación para el significado y las propiedades del valor devuelto por alignof.


[editar] 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

[editar] Ver también

requerimiento de alineación restringe las direcciones a las que se puede asignar un objeto
alignas especificador especifica que el almacenamiento para la variable debe estar alineado por la cantidad específica(C++11) [editar]
obtiene los requisitos de alineación del tipo
(plantilla de clase) [editar]