Класс aligned_storage
Создает должным образом выровненный тип.
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;
Параметры
Len
Размер объекта.Align
Выравнивание объекта.
Заметки
Вложенный тип typedef type является синонимом типа POD с выравниванием Align и размером Len. Значение Align должно быть равно значению alignment_of<Ty1>::value для определенного типа Ty1.
Пример
#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);
}
Требования
Заголовок: <type_traits>
Пространство имен: std