名稱空間
變體
操作

ATOMIC_FLAG_INIT

來自 cppreference.com
< cpp‎ | atomic
 
 
併發支援庫
執行緒
(C++11)
(C++20)
this_thread 名稱空間
(C++11)
(C++11)
(C++11)
協同取消
互斥
(C++11)
通用鎖管理
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
條件變數
(C++11)
訊號量
門閂和屏障
(C++20)
(C++20)
期值
(C++11)
(C++11)
(C++11)
(C++11)
安全回收
(C++26)
危險指標
原子型別
(C++11)
(C++20)
原子型別的初始化
(C++11)(C++20 中已棄用)
(C++11)(C++20 中已棄用)
ATOMIC_FLAG_INIT
(C++11)
記憶體排序
(C++11)(C++26 中已棄用)
原子操作的自由函式
原子標誌的自由函式
 
定義於標頭檔案 <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 文件ATOMIC_FLAG_INIT