std :: once_flag相当于BOOST_ONCE_INIT

时间:2010-11-17 01:52:06

标签: c++ c++11

我正在使用我从here借用的一些代码,它使用boost :: call_once来创建单例类,并希望将所有代码转换为使用C ++ 0x的std :: call_once来删除依赖项在Boost上。有谁知道什么是BOOST_ONCE_INIT的Std等价物?

1 个答案:

答案 0 :(得分:3)

std::once_flag有一个constexpr构造函数,因此静态存储持续时间的实例始终是静态初始化的。

顺便提一下,关于scoped_ptr的要点很重要--- scoped_ptr实例的构造函数不是静态初始化,因此在初始化之前将使用单例的任何使用进行竞争,并且可能覆盖指针。