空きオブジェクトの初期化順序は、C++では未定義です。しかし、次のことはどうですか?静的初期化時にフリーの "char const *"を使用する
namespace foo {
char const* str = "hey";
struct A {
A() { cout << str; }
} obj;
}
これは未だに定義されていない動作ですか、または文字列リテラルで初期化されたポインタの特別な規定がありますか?
それ以外は:strが "char const []"タイプの場合はどうなりますか?そして、もしそれがstd :: stringだったら?
私は悪いです。 –
-1:これは間違っています。 http://stackoverflow.com/questions/8750407/do-objects-of-built-in-types-have-special-static-initialisation-order-precedenceを参照してください。 –