名稱空間
變體
操作

std::atomic_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)
原子型別的初始化
atomic_init
(C++11)(C++20 中已棄用)
(C++11)(C++20 中已棄用)
記憶體排序
(C++11)(C++26 中已棄用)
原子操作的自由函式
原子標誌的自由函式
 
定義於標頭檔案 <atomic>
template< class T >

void atomic_init
    ( std::atomic<T>* obj,

      typename std::atomic<T>::value_type desired ) noexcept;
(1) (C++11 起)
(C++20 中已棄用)
template< class T >

void atomic_init
    ( volatile std::atomic<T>* obj,

      typename std::atomic<T>::value_type desired ) noexcept;
(2) (C++11 起)
(C++20 中已棄用)

使用值 desired 初始化預設構造的原子物件 obj。此函式不是原子操作:來自另一個執行緒的併發訪問,即使透過原子操作,也會導致資料競爭。

如果 obj 不是預設構造的,或者此函式在同一個 obj 上被呼叫兩次,則行為是未定義的。

目錄

[編輯] 引數

obj - 指向要初始化的原子物件的指標
desired - 用於初始化原子物件的值

[編輯] 返回值

(無)

[編輯] 注意

此函式旨在與 C 相容。如果不需要相容性,可以透過非預設建構函式初始化 std::atomic

[編輯] 示例

[編輯] 缺陷報告

下列更改行為的缺陷報告追溯地應用於以前出版的 C++ 標準。

缺陷報告 應用於 釋出時的行為 正確的行為
P0558R1 C++11 因為要求精確型別匹配
T 是從多個引數推匯出來的
T 僅從
obj 中推導

[編輯] 另請參閱

(C++11)(C++20 中已棄用)
靜態儲存持續時間的原子變數的常量初始化
(函式宏) [編輯]
構造一個原子物件
(std::atomic<T> 的公共成員函式) [編輯]
atomic_initC 文件