C++ named requirements: StandardLayoutType (since C++11)
From cppreference.net
C++
C++ named requirements
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
型が標準レイアウト型であることを指定します。標準レイアウト型は、他のプログラミング言語で書かれたコードとの連携に有用です。
注: 標準規格はこの名称の名前付き要件を定義していません。これはコア言語によって定義される型カテゴリです。一貫性を保つためだけに、名前付き要件としてここに含まれています。
目次 |
要件
以下の型はまとめて standard-layout types と呼ばれます:
- スカラ型
- 標準レイアウトクラス型
- そのような型の配列
- これらの型のCV修飾版
プロパティ
Standard-layout を参照してください。
不具合報告
以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。
| DR | 適用対象 | 公開時の動作 | 正しい動作 |
|---|---|---|---|
| CWG 1672 | C++11 |
最初の非静的データメンバールールが無視される
空の基底クラスの存在 |
最初の非静的データメンバールールを
再帰的に適用 |
| CWG 1813 | C++11 |
間接的な基底クラスで定義されたメンバを持つクラスは
技術的にstandard-layoutではなかった |
すべてのメンバ宣言は
同じクラス内で行わなければならない |
| CWG 2120 | C++11 |
最初のメンバとしての配列は、最初の要素の型と
基底クラスの型を比較する際に考慮されなかった |
配列メンバが考慮される |
関連項目
|
(C++11)
|
型が
スタンダードレイアウト
型であるかどうかをチェックする
(クラステンプレート) |