私は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 では問題なく動作しますが、同様の状況で予期しない動作に遭遇した人はいますか? もしそうなら、どれとどのコンパイラを使っていますか? 最悪のシナリオとは?
よろしくクラース