FreeBSD Manual Pages
std::alignment_of(3) C++ Standard Libary std::alignment_of(3) NAME std::alignment_of - std::alignment_of Synopsis Defined in header <type_traits> template< class T > (since C++11) struct alignment_of; Provides the member constant value equal to the alignment require- ment of the type T, as if obtained by an alignof expression. If T is an array type, re- turns the alignment requirements of the element type. If T is a reference type, returns the alignment requirements of the type referred to. If alignof(T) is not a valid expression, the behavior is undefined. The behavior of a program that adds specializations for alignment_of or alignment_of_v (since C++17) is undefined. Helper variable template template< class T > (since C++17) inline constexpr std::size_t alignment_of_v = align- ment_of<T>::value; Inherited from std::integral_constant Member constants value alignof(T) [static] (public static member constant) Member functions operator std::size_t converts the object to std::size_t, returns value (public member function) operator() returns value (C++14) (public member function) Member types Type Definition value_type std::size_t type std::integral_constant<std::size_t, value> Possible implementation template< class T > struct alignment_of : std::integral_constant< std::size_t, alignof(T) > {}; Notes This type trait predates the alignof keyword, which can be used to obtain the same value with less verbosity. Example // Run this code #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>() << ' '; // alt syntax std::cout << std::alignment_of_v<double> << '\n'; // c++17 alt syntax } Possible output: 1 2 4 8 See also alignof operator(C++11) queries alignment requirements of a type alignas specifier(C++11) specifies that the storage for the variable should be aligned by specific amount aligned_storage defines the type suitable for use as uninitialized (C++11)(deprecated in C++23) storage for types of given size (class template) aligned_union defines the type suitable for use as uninitialized (C++11)(deprecated in C++23) storage for all given types (class template) max_align_t trivial type with alignment requirement as great as any (C++11) other scalar type (typedef) http://cppreference.com 2022.07.31 std::alignment_of(3)
NAME | Synopsis | Member constants | Member functions | Member types | Possible implementation | Notes | Example | Possible output: | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::alignment_of&sektion=3&manpath=FreeBSD+Ports+15.0>
