1

重複の可能性:
C++ の非 POD 構造で offsetof を使用できないのはなぜですか?

私は2つのクラスを持っています:

struct A{
  double one;
  float two;
};

struct B : public A{
  float three;
};

C++11 標準レイアウトの制限を正しく解釈すると、B と A の両方に非静的データ メンバーがあるため、B は標準レイアウトではありません。B のようなコンストラクトを HDF5 と組み合わせて使用​​したいと考えています。これには、(私の知る限り) 標準レイアウト オブジェクトに制限されているoffsetofマクロの使用が必要です。私の質問は、次のような式で何がうまくいかないかということです

offsetof(B, three)

gcc-4.6 では問題なく動作しますが、同様の状況で予期しない動作に遭遇した人はいますか? もしそうなら、どれとどのコンパイラを使っていますか? 最悪のシナリオとは?

よろしくクラース

4

0 に答える 0