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; // static initialization, // guaranteed to be available during dynamic initialization of static objects. int main() { std::atomic_flag automatic_flag = ATOMIC_FLAG_INIT; // guaranteed to work // std::atomic_flag another_flag(ATOMIC_FLAG_INIT); // unspecified }
[編輯] 缺陷報告
下列更改行為的缺陷報告追溯地應用於以前出版的 C++ 標準。
缺陷報告 | 應用於 | 釋出時的行為 | 正確的行為 |
---|---|---|---|
LWG 2159 | C++11 | 不清楚 `ATOMIC_FLAG_INIT` 是否可用於其他初始化上下文 |
其他用法 不保證 |
LWG 3659 | C++20 | `ATOMIC_FLAG_INIT` 已被棄用,但在某些平臺上的 C 中需要 | 它已取消棄用 |
[編輯] 另請參閱
(C++11) |
無鎖布林原子型別 (類) |
C 文件 為 ATOMIC_FLAG_INIT
|