POD

提供: C++入門
2015年3月1日 (日) 23:15時点におけるDaemon (トーク | 投稿記録)による版 (ページの作成:「POD (Plain Old Data)とは、C言語の構造体と互換性のあるオブジェクトレイアウトで、連続したバイトで表現できる型です。memcpy(...」)

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索
スポンサーリンク

POD (Plain Old Data)とは、C言語の構造体と互換性のあるオブジェクトレイアウトで、連続したバイトで表現できる型です。memcpy()でコピーができ、memset()で初期化できる、ということです。

読み方

POD
ぴーおーでぃー、ぽっど
Plain Old Data
ぷれいん おーるど でーた

概要

C++98 では、以下のようになっていました。

  • 構造体 S は、PODです。
  • 構造体 T は、PODではありません。
struct S {
	int a;
};
struct T {
	int a;
	T(int a_) : a(a_) { }
};

C++11では、上記の構造体 S と T は、標準レイアウト型(POD)となりました。コンストラクタは、レイアウトに影響を与えません(つまり、memcpy() が動作します)。

POD である条件

  • 仮想関数がない
  • 仮想基底型がない
  • リファレンスがない
  • 複数のアクセス指定子がない

PODを使う理由

PODを定義すると、C言語とデータの受け渡しが可能になります。

関連項目




スポンサーリンク