aligned_storage Class


The new home for Visual Studio documentation is Visual Studio 2017 Documentation on

The latest version of this topic can be found at aligned_storage Class.

Makes suitably aligned type.

template <std::size_t Len, std::size_t Align>  
struct aligned_storage;  
template <std::size_t Len, std::size_t Align = alignment_of<max_align_t>::value>  
using aligned_storage_t = typename aligned_storage<Len, Align>::type;  


The object size.

The object alignment.

The template member typedef type is a synonym for a POD type with alignment Align and size Len. Align must be equal to alignment_of<T>::value for some type T, or to the default alignment.

#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

alignment_of Class