aligned_storage クラス

適切にアライメントされた型を作成します。

構文

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;

パラメーター

Len
オブジェクトのサイズ。

整列
オブジェクトのアライメント。

解説

テンプレート メンバー typedef type は、アラインメント Align とサイズ Len を持つ POD 型の同意語です。 Align は、一部の型 T では alignment_of<T>::value と等しくする必要があります。または既定のアライメントと等しくする必要があります。

#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

必要条件

ヘッダー: <type_traits>

名前空間: std

関連項目

<type_traits>
alignment_of クラス