我正在使用我从here借用的一些代码,它使用boost :: call_once来创建单例类,并希望将所有代码转换为使用C ++ 0x的std :: call_once来删除依赖项在Boost上。有谁知道什么是BOOST_ONCE_INIT的Std等价物?
答案 0 :(得分:3)
std::once_flag
有一个constexpr
构造函数,因此静态存储持续时间的实例始终是静态初始化的。
顺便提一下,关于scoped_ptr
的要点很重要--- scoped_ptr
实例的构造函数不是静态初始化,因此在初始化之前将使用单例的任何使用进行竞争,并且可能覆盖指针。