以下のコードを使用すると、静的オブジェクトの順序作成の問題が発生します。
h1.hpp
namespace X {
struct XX {
static const string str1;
static const string str2;
};
}
h1.cpp
namespace X {
const string XX::str1 = "Hello World";
const string XX:str2 = "Hello Country";
}
h2.cpp ----> included h1.hpp
h3.cpp ----> included h1.hpp
h4.cpp ----> included h1.hpp
------
[X::XX::str1] としてアクセスしたい
func1(X::XX::str1); etc.
X::XX::str1 にアクセスしようとすると、「Hello World」ではなく空になります。ローカル コピーが作成されたすべての場所ではなく、同じオブジェクト (X::XX:str1) が使用されていることを確認するにはどうすればよいですか。
更新情報:
実際に X::XX::str1 プログラムにアクセスすると segfaults が発生します。オブジェクトは作成されませんか?