C 構造体では、次のことが保証されています。
struct Foo { ... };
struct Bar {
Foo foo;
...
}
Bar bar;
assert(&bar == &(bar.foo));
さて、C ++で、私が持っている場合:
class Foo { ... };
class Bar: public Foo, public Other crap ... {
...
}
Bar bar;
assert(&bar == (Foo*) (&bar)); // is this guaranteed?
もしそうなら、参考文献を教えてもらえますか (「C++ プログラミング言語、ページ xyz」など)。
ありがとう!