Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Makes suitably aligned type.
template<std::size_t Len, std::size_t Align>
struct aligned_storage {
typedef aligned-type type;
};
template<size_t _Len,
size_t _Align = alignment_of<max_align_t>::value>
using aligned_storage_t = typename aligned_storage<_Len, _Align>::type;
Parameters
Len
The object size.Align
The object alignment.
Remarks
The nested typedef type is a synonym for a POD type with alignment Align and size Len. Align must be equal to alignment_of<Ty1>::value for some type Ty1.
Example
#include <type_traits>
#include <iostream>
typedef std::aligned_storage<sizeof (int),
std::alignment_of<double>::value>::type New_type;
int main()
{
std::cout << "alignment_of<int> == "
<< std::alignment_of<int>::value << std::endl;
std::cout << "aligned to double == "
<< std::alignment_of<New_type>::value << std::endl;
return (0);
}
alignment_of<int> == 4 aligned to double == 8
Requirements
Header: <type_traits>
Namespace: std