【发布时间】:2011-03-09 18:17:06
【问题描述】:
有一个简单且众所周知的模式来避免静态初始化失败,在section 10.13 of the C++ FAQ Lite 中进行了描述。
在这个标准模式中,有一个权衡,即构造的对象永远不会被破坏(如果析构函数没有重要的副作用,这不是问题),或者不能安全地从另一个对象访问静态对象静态对象的析构函数(参见section 10.14 of the C++ FAQ Lite)。
所以我的问题是:如果静态对象的析构函数具有最终必须发生的重要副作用并且静态对象必须由另一个静态对象的析构函数访问,您如何避免静态反初始化惨败?
(注意:FAQ-lite 提到这个问题在 M. Cline 和 G. Lomow 的 C++ FAQs: Frequently Asked Questions 的 FAQ 16.17 中得到了回答。我无法访问这本书,这是为什么我会问这个问题。)
【问题讨论】:
-
谢谢,这就是我错过的重点......
-
C++ FAQ Lite 移至dietmar-kuehl.de/mirror/c++-faq
标签: c++ destructor static-initialization initialization-order