私が理解していることから、標準レイアウトでは次の 3 つのことが可能です。
- 空の基本クラスの最適化
- 特定のポインタ キャストによる C との下位互換性
- オフセットの使用
現在、ライブラリに含まれているのはis_standard_layout
述語メタ関数ですが、上記にリストした C 機能が汎用コードでチェックする必要があることは非常にまれであるため、汎用コードでの使用はあまり見られません。私が考えることができる唯一のことは、内部static_assert
で使用することですが、それはコードをより堅牢にするためだけであり、必須ではありません。
どのようにis_standard_layout
便利ですか?それなしでは不可能であり、標準ライブラリでそれを必要とするものはありますか?