Phi*_*ipp 2 c++ initialization const visual-c++
我有这样的代码:
bool doSomething()
{
std::cout << "I'm here!"
return true;
}
const bool x = doSomething();
Run Code Online (Sandbox Code Playgroud)
如果放在我的Visual C++控制台应用程序中的cpp文件中,则在进入main()方法之前按预期执行代码.
但是,如果我将此代码放在静态链接库项目(链接到我的控制台应用程序)中的.cpp文件中,则永远不会执行代码.我没有在这个文件中定义任何从外部使用的方法,没有相应的.h文件.那么链接器是否可能不链接文件?我怎么能避免这个?
(实际上,如果我为cpp文件创建头文件,则执行代码,在cpp-和h文件中放置另一个方法"void dummy(){}"并从main调用dummy().)
非常感谢!
这应该把事情做好.
$ 3.6.2/4-"实现定义了静态存储持续时间的非局部变量的动态初始化是否在main的第一个语句之前完成.如果初始化被推迟到第一个语句之后的某个时间点. main,它应该在第一次使用与要初始化的变量相同的翻译单元中定义的任何函数或变量之前发生.34"