重複の可能性:
C++ の POD 型とは?
私は C++ でインタープリターを作成しています。特定の C++ データ型が、インタープリター コードを介してアクセスされるとき、特にリフレクションを使用するときに、予測可能なレイアウトを持っていることを確認したいと考えています。たとえば、最初のデータ フィールドが常にオブジェクトのアドレスからオフセット 0 になるようにします。これは、純粋な POD タイプの場合は簡単です。ただし、仮想関数や多重継承などの明白なことを避ける限り、これが継承またはコンストラクターを持つオブジェクトでも機能するかどうか疑問に思っています。コンパイラがこれらの型を C コンパイラと同じようにレイアウトすると仮定するのは合理的ですか、それとも C++ 標準の「指定されていない動作」は私が心配する必要があるものでしょうか?