1. ホーム
  2. c++

[解決済み] なぜC++20ではstd::is_podは非推奨なのですか?

2022-11-01 15:25:22

質問

std::is_pod は、おそらく C++20 で非推奨となるでしょう。

この選択の理由は何ですか?の代わりに何を使うべきですか? std::is_pod の代わりに何を使えばいいのでしょうか?

どのように解決するのですか?

PODは、よりニュアンスの異なる2つのカテゴリに置き換えられています。その 2017年11月に開催されたc++標準会議 にはこのように書かれていました。

プレーンオールドデータ」(POD) の概念を非推奨とします。これは、"trivial" と "standard-layout" という、よりニュアンスの異なる 2 種類の型に置き換えられました。「PODは "trivial and standard layout "と同じですが、多くのコードパターンでは、"trivial "だけ、あるいは "standard layout "だけという狭い制限が適切で、そのような精度を高めるために、"POD "という概念は非推奨にされました。そのため、「POD」という概念は非推奨とされました。これに伴い、ライブラリの特性であるis_podも非推奨とされました。

単純なデータ型には is_standard_layout 関数を、些細なデータ型 (単純な構造体など) には is_trivial 関数を使います。