【发布时间】:2015-07-01 13:32:11
【问题描述】:
有一次我阅读了一篇很棒的 C++ FAQ(真的很棒!!)并阅读了 topic 关于如何防止静态初始化命令“惨败”的文章。所以作者建议将静态变量包装成函数,从而通过维护变量的创建顺序来防止“惨败”。但这在我看来是一个粗鲁的解决方法。所以我的问题是,是否有任何现代的、更面向模式的方法来防止这种“惨败”,而是将“静态的东西”包装成函数???
【问题讨论】:
-
防止失败的优雅方法是永远不要使用依赖于任何东西的静态对象。
-
FAQ 中提供了关于Construct on first use idiom 的建议。许多 C++ 程序员都熟悉的模式。它易于实现,甚至更易于使用。我不明白您所说的“现代、更面向模式的方式”是什么意思。
标签: c++ static word-wrap static-initialization static-order-fiasco