We recommend using Visual Studio 2017
This documentation is archived and is not being maintained.

aligned_storage Class

Makes suitably aligned type.

template<std::size_t Len, std::size_t Align>
    struct aligned_storage {
        typedef aligned-type type;


The object size.


The object alignment.

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.


// std_tr1__type_traits__aligned_storage.cpp 
// compile with: /EHsc 
#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

Header: <type_traits>

Namespace: std