C++20 で std::is_pod が非推奨になったのはなぜですか? 質問する

C++20 で std::is_pod が非推奨になったのはなぜですか? 質問する

std::is_podC++20 では非推奨となりました。
この選択の理由は何ですか?std::is_pod型が実際に POD であるかどうかを確認するには、 の代わりに何を使用すればよいですか?

ベストアンサー1

PODは、よりニュアンスのある2つのカテゴリーに置き換えられます。2017 年 11 月の C++ 標準会議これについてこう言いました。

「プレーン オールド データ」(POD) の概念は非推奨になりました。これは、より微妙な違いのある 2 つのカテゴリ「trivial」と「standard-layout」に置き換えられました。「POD」は「trivial and standard layout」と同等ですが、多くのコード パターンでは、「trivial」または「standard layout」のみに狭く制限することが適切です。そのため、このような正確さを奨励するために、「POD」の概念は非推奨になりました。ライブラリ特性 is_pod も、同様に非推奨になりました。

単純なデータ型の場合は、is_standard_layout関数、単純なデータ型(単純な構造体など)の場合は、is_trivial関数。

おすすめ記事