ATOMIC_VAR_INIT
來自 cppreference.com
定義於標頭檔案 <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_INIT 的 C 文件
|