c++ - std::once_flag 相当于 BOOST_ONCE_INIT

标签 c++ c++11

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

最佳答案

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

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

关于c++ - std::once_flag 相当于 BOOST_ONCE_INIT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4200813/

相关文章:

c++ - Rgd : How to initialize a default value for class private

c++ - std::end for unique_ptr<T[]>

c++ - 没有默认构造函数会导致没有 move 构造函数吗?

c++ - 按值传递然后移动构造还是按引用传递然后复制构造更好

c++ - 添加 cpp 文件后体系结构 x86_64 的 undefined symbol

C++:按引用返回到按值返回

c++ - 重写 Java 的 String.toUpperCase() 返回空字符数组

c++ - i7 处理器与 windows8 操作系统的多线程问题

c++ - 确定类静态变量的总大小?

c++ - IntelliSense Visual Studio 2010 SP1 unique_ptr : unique_ptr<vector<unique_ptr<T>>> T