名稱空間
變體
操作

ATOMIC_VAR_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 中已棄用)
ATOMIC_VAR_INIT
(C++11)(C++20 中已棄用)
記憶體排序
(C++11)(C++26 中已棄用)
原子操作的自由函式
原子標誌的自由函式
 
定義於標頭檔案 <atomic>
#define ATOMIC_VAR_INIT(value) /* implementation-defined */
(C++11 起)
(C++20 中已棄用)

擴充套件為一個表示式,可用於初始化一個可從 `value` 初始化的 std::atomic 物件。如果 atomic 物件具有靜態儲存期,則此初始化是 常量初始化

[編輯] 注意

在初始化期間從另一個執行緒訪問變數,即使是透過原子操作,也是資料競爭(如果地址透過 std::memory_order_relaxed 操作立即傳遞給另一個執行緒,則可能發生此情況)

此宏主要用於與 C 相容;它的行為與 std::atomic 的建構函式相同。

[編輯] 示例

#include <atomic>
#include <iostream>
 
int main()
{
    std::atomic<int> a = ATOMIC_VAR_INIT(1);
    // std::atomic<int> a(1);   // C++-only alternative
    std::cout << "Initialized std::atomic<int> as: " << a << '\n';
}

輸出

Initialized std::atomic<int> as: 1

[編輯] 參閱

(C++11)(C++20 中已棄用)
預設構造的原子物件的非原子初始化
(函式模板) [編輯]
構造一個原子物件
(std::atomic<T> 的公共成員函式) [編輯]
ATOMIC_VAR_INITC 文件