C ++全局命名空间变量未初始化 - 总是如此

时间:2014-01-09 11:46:35

标签: c++ static initialization global-variables

在命名空间中声明了一堆字符串。即。

const std::string string1 = "string1";

Main调用一个使用其中一个字符串的函数,但字符串始终为空。即失败

assert(!string1.empty());

我知道静态初始化失败然而这种行为是在调用main之后发生的,一切都应该由这一点初始化了吗?此外,无论我跑多少次或干净,都会发生这种情况。使

我有什么办法可以解决这个问题或者更好地处理错误吗?

编辑: 我道歉,当我说主要被召唤之后发生这种情况时,我错了。我已经声明了我自己的命名空间变量,它试图在其构造函数中访问我提到的其他未初始化的命名空间。

我接受了yzt的建议,并将自己的命名空间变量包装在一个函数中,以便在首次使用它时进行初始化。

0 个答案:

没有答案