C++14}この機能はC++23で非推奨となった。std::byte[std::max({sizeof(Ts)...})];を使用することを推奨する。概要アライメント調整された共用体領域を作る。要件Types...に、1個以上の型が与えられること。それらの型は全て完全型であること。効果aligned_unionは、領域サイズLen、要素型列Types...で調整した未初期化の共用体領域をメンバ型typeとして定義する。Types...のいずれかの型が非トリビアル型だとしても、メンバ型typeはトリビアル型となるまた、Types...全ての厳格なアライメント値を、std::size_t型の静的メンバ定数alignment_valueとして定義する。(標準では、型が少なくとも要求された以上の大きさであることのみを要件としているだけで、上限サイズを要求できない)APIが多くの理由で間違っている。そのためにこのAPIを使うために繰り返し同じ事前作業が必要になる。API設計が間違っている理由は以下:::typeの値にアクセスするためにreinterpret_castが必要となってしまう。指定できないため、必要以上のメモリが使用される可能性があるこれらの問題はaligned_storageも同様である。aligned_union固有の問題はそれほどひどくないが、それでも望ましくない以下のような問題がある:第1テンプレートパラメータが無意味この機能は、可変個のすべての型のサイズとアライメントを推論し、それらの最大値を実際のストレージとして使用する。先頭のテンプレートパラメータはストレージの最小サイズである。すべての型がそれより小さい場合でも、ストレージは第1テンプレートパラメータより小さくならない最小サイズを必要とすることはめずらしいことであり、ほとんどの場合はaligned_union_t<0、Ts...>のように使用する。20152012は、alignment_valueが定義されていない。2012は、可変引数テンプレートに対応していないため、不完全な実装である。下に提供されています。