Namespaces
Variants

C++ named requirements: StandardLayoutType (since C++11)

From cppreference.net
C++ named requirements

型が標準レイアウト型であることを指定します。標準レイアウト型は、他のプログラミング言語で書かれたコードとの連携に有用です。

注: 標準規格はこの名称の名前付き要件を定義していません。これはコア言語によって定義される型カテゴリです。一貫性を保つためだけに、名前付き要件としてここに含まれています。

目次

要件

以下の型はまとめて standard-layout types と呼ばれます:

プロパティ

Standard-layout を参照してください。

不具合報告

以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。

DR 適用対象 公開時の動作 正しい動作
CWG 1672 C++11 最初の非静的データメンバールールが無視される
空の基底クラスの存在
最初の非静的データメンバールールを
再帰的に適用
CWG 1813 C++11 間接的な基底クラスで定義されたメンバを持つクラスは
技術的にstandard-layoutではなかった
すべてのメンバ宣言は
同じクラス内で行わなければならない
CWG 2120 C++11 最初のメンバとしての配列は、最初の要素の型と
基底クラスの型を比較する際に考慮されなかった
配列メンバが考慮される

関連項目

型が スタンダードレイアウト 型であるかどうかをチェックする
(クラステンプレート)