cpp-book icon indicating copy to clipboard operation
cpp-book copied to clipboard

POD was deprecated

Open yumetodo opened this issue 5 years ago • 2 comments

C++11ではCとのデータ構造互換を考える時に、これまでPODという概念を用いていたのをtrivial classとstandard-layout classに分離し、さらにtrivial classよりゆるい制約としてtrivially copyable classという概念を導入した。本当に必要な制約はtrivially copyable classまたはstandard-layout classであるため、PODはC++20でdeprecatedとなった。 したがってPODとはC++考古学の範疇であり、新たに説明するのは望ましくない。

ref:

yumetodo avatar Nov 23 '20 07:11 yumetodo

したがってPODとはC++考古学の範疇であり、新たに説明するのは望ましくない。

#65 構造体 の議論と類似しますが、C++11以前から POD(Plain Old Data) と呼ばれる概念があるのは真実ですし、言及自体はあっても良いのではと思います。[class]/10

PODに関する話題は、C++と他プログラミング言語との相互運用性において意味を持つものです。その意味では、データメンバのオフセット位置やパディング量といった、(単なるC++仕様を超えて)メモリ配置についても考慮する必要があると思います。

このサイトではC++言語仕様の解説を目指すのか、実用性を目指すのかで方向性が変わってくるのではないでしょうか。

yohhoy avatar Nov 27 '20 09:11 yohhoy

別issueにすべきかもしれませんが、12.2 では文脈的に 集成体(aggregate) と 構造体(structure type) が混同されているように思えます。

yohhoy avatar Nov 27 '20 09:11 yohhoy