alignof operator (since C++11)
From cppreference.com
Queries alignment requirements of a type
Contents |
[edit] Syntax
alignof( type ) | |||||||||
Returns an object of type std::size_t.
[edit] Explanation
Returns alignment in bytes (an integer power of two) required for any instance of the given type, which is either complete type, an array type, or a reference type.
If the type is reference type, the operator returns the alignment of referenced type; if the type is array type, alignment requirement of the element type is returned.
The types char, signed char, and unsigned char have the weakest (smallest) alignment supported by the implementation.
[edit] Keywords
[edit] Example
#include <iostream> struct Empty {}; struct Foo { int f2; float f1; char c; }; int main() { std::cout << "alignment of empty class: " << alignof(Empty) << '\n' << "alignment of pointer : " << alignof(int*) << '\n' << "alignment of char : " << alignof(char) << '\n' << "alignment of Foo : " << alignof(Foo) << '\n' ; }
Output:
alignment of empty class: 1 alignment of pointer : 8 alignment of char : 1 alignment of Foo : 4
[edit] See also
alignas specifier | specifies that the storage for the variable should be aligned by specific amount (C++11) |
(C++11) |
obtains the type's alignment requirements (class template) |