<mutex>

std::once_flag

struct once_flag;
call_once的标志参数类型
此类型的对象用作call_once的参数。

在不同线程中对call_once使用相同的对象会导致并发调用时仅执行一次。

它是一个不可拷贝不可移动默认可构造的类,在<mutex>中声明,原型如下:
1
2
3
4
5
struct once_flag {
  constexpr once_flag() noexcept;
  once_flag (const once_flag&) = delete;
  once_flag& operator= (const once_flag&) = delete;
};

另见