【发布时间】:2018-07-09 17:29:42
【问题描述】:
假设您定义了几个文件级静态对象:
//foo.cpp
static std::map<std::string, std::string> bar;
static MyCustomCompicatedClass baz;
c++ 标准是否规范它们的生命周期?他们的析构函数究竟什么时候会被调用?
我听说全局静态不是一个好主意,如果在 vcruntime 内存不足(无论如何在 Windows 上)之后调用它们的析构函数,则可能会使您的程序崩溃。真的吗?有人可以分享详细信息吗?其他平台呢?
【问题讨论】:
-
文件级静态数据按照与加载相反的顺序销毁,无论该顺序是什么。
-
你似乎同时问了一堆问题。 This question 是其中一些的副本。
标签: c++