std::atomic_flag 初始化结果
Posted
技术标签:
【中文标题】std::atomic_flag 初始化结果【英文标题】:std::atomic_flag initialization result 【发布时间】:2018-07-31 08:21:32 【问题描述】:真的有必要以这种方式初始化std::atomic_flag
:
std::atomic_flag flag = ATOMIC_FLAG_INIT;
在我看来它应该有相同的结果:
std::atomic_flag flag;
flag.clear();
我已经从 cppreference 阅读了关于这个类的所有信息,但我仍然不确定。
【问题讨论】:
是否有一些场景/代码表现出不同的行为? 我不知道,但我问这个是为了了解标准对此有何规定。 【参考方案1】:根据ATOMIC_FLAG_INIT spec:
这是将 std::atomic_flag 初始化为确定值的唯一方法:未指定任何其他初始化后保持的值。
【讨论】:
以上是关于std::atomic_flag 初始化结果的主要内容,如果未能解决你的问题,请参考以下文章
互锁变量访问(在布尔值上)和 std::atomic_flag 之间的区别
将 std::atomic_flag 包装在 getter/setter 中会使其“原子性”无效吗?