ATOMIC_FLAG_INIT
来自cppreference.com
在标头 <atomic> 定义
|
||
#define ATOMIC_FLAG_INIT /* implementation-defined */ |
(C++11 起) | |
定义能以语句 std::atomic_flag v = ATOMIC_FLAG_INIT; 用于初始化 std::atomic_flag 以清除(置 false )状态的初始化器。它能否用于其他初始化语境中是未指定的。
这是初始化 std::atomic_flag 为确定值的唯一方式:任何其他初始化后它保有的值是未指定的。 |
(C++20 前) |
此宏不再有必要因为 std::atomic_flag 的默认构造函数初始化它为清除状态。它为与 C 的兼容性保留。 |
(C++20 起) |
示例
运行此代码
#include <atomic> std::atomic_flag static_flag = ATOMIC_FLAG_INIT; // 静态初始化, // 保证在静态对象的动态初始化期间可用。 int main() { std::atomic_flag automatic_flag = ATOMIC_FLAG_INIT; // 保证能工作 // std::atomic_flag another_flag(ATOMIC_FLAG_INIT); // 未指定 }
缺陷报告
下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。
缺陷报告 | 应用于 | 出版时的行为 | 正确行为 |
---|---|---|---|
LWG 3659 | C++20 | ATOMIC_FLAG_INIT 被弃用但在一些平台上在 C 中有需要
|
它不再被弃用 |
参阅
(C++11) |
免锁的布尔原子类型 (类) |