名前空間
変種
操作

C++ の名前付き要件: StandardLayoutType (C++11 以降)

From cppreference.com
 
 
C++ 名前付き要件
 

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

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

目次

[編集] 要件

以下の型はまとめて「標準レイアウト型」と呼ばれます。

[編集] プロパティ

標準レイアウトを参照してください。

[編集] 欠陥報告

以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。

DR 適用対象 公開された動作 正しい動作
CWG 1672 C++11 最初の非静的データメンバ規則が無視される
空の基底クラスの存在
最初の非静的データメンバ規則
再帰的にする
CWG 1813 C++11 間接的な基底クラスで定義されたメンバを持つクラス
技術的には標準レイアウトではなかった
すべてのメンバ宣言が
同じクラスにある必要がある
CWG 2120 C++11 最初のメンバが配列の場合、比較の際に考慮されていなかった
最初の要素の型と基底クラスの型を比較する際
配列メンバも考慮される

[編集] 関連項目

型がスタンダードレイアウト型であるかをチェックする
(クラステンプレート) [編集]
English 日本語 中文(简体) 中文(繁體)