C++相談室2

このエントリーをはてなブックマークに追加
struct A {
 A();
 virtual void method();
};

struct B : public A {
 B();
 virtual void method() { puts("called"); }
};

上記のようなクラス定義で、
1 A::A() { method(); }
2 B::B() { method(); }

1の呼び出しが無効なのは分かるのですが、
2の呼び出しが正常に行われる保証はあるのでしょうか?
Bのコンストラクタが開始した時点で仮想関数は確実に呼び出せる状態にあるのでしょうか?

BCCでは呼び出せたのですが、処理系依存なのか分からないので・・・