C 静态与线程存储持续时间破坏顺序
c++ static vs thread storage duration destruction order
考虑在C 中如何有这两个存储持续时间(除其他):静态存储持续时间和线程存储持续时间。
接下来考虑此代码:
static MyClassA a;
thread_local static MyClassB b;
另外假装" A"answers" B"可能不在同一汇编单元中。我"相信" b"的驱动器将在" A"之前调用,因为线程存储持续时间将首先终止,并且仅在此之后才能完成,静态存储持续时间将终止,并将其称为" A"的破坏者。我一直在寻找对此的标准参考,但我找不到一个。有人可以通过权威来源确认吗?
[basic.start.term]/p1:
具有线程存储持续时间的初始化对象的破坏者 在给定线程中,由于从 该线程的初始函数以及该线程调用的结果
std::exit
。所有初始化的破坏者的完成 该线程中具有线程存储持续时间的对象被测序 在开始使用静态物体的破坏者之前 存储持续时间。
相关文章:
- 从持续时间构造std::chrono::system_clock::time_point
- 我有一个对象,它将在整个程序的持续时间内实例化,但一个类成员不会,我应该动态分配它吗?
- 时间持续时间到时间字符串
- 指向(数据)成员的指针作为非类型模板参数,例如具有自动存储持续时间/无链接
- 为什么具有静态存储持续时间的同一内联变量在包含在 VS2017 编译的两个翻译单元中时会构造和销毁两次
- 将毫秒转换为给定格式的持续时间
- 具有静态存储持续时间的常量初始化变量的初始化顺序
- 划分和乘以STD :: Chrono ::持续时间
- 静态存储持续时间初始化
- C++计划持续时间内(字体)资源的分配
- FFMPEG:具有不同持续时间的多路复用流
- 在不同翻译单元中具有静态存储持续时间的依赖非局部常量浮点变量的常量初始化
- 使用System_Clock :: TO_TIME_T警告持续时间_t
- 访问和存储/解析性std :: Chrono ::持续时间:: milliseconds(cpprest)时使用什么类型
- 我可以让QT到概要文件插槽执行持续时间吗?
- 在STD :: Chrono ::剩余时间测量的持续时间
- 自定义 AVIOContext 的未定义 AVFormatContext 持续时间
- 使用计时比较C++的持续时间/秒数并不像预期的那样工作
- 为什么 std::future::wait_for 不等待正确的持续时间
- C 静态与线程存储持续时间破坏顺序