[英]Is assignment equivalent to load/store for std::atomic<bool>
我看到這可能是有問題的答案。 我必須顯式調用原子加載/存儲嗎? 。
因此,為了清楚起見,我將簡要地重申我的問題,希望將來的讀者能清楚地理解。
是
std::atomic<bool> b(false);
bool x = b;
和...一樣
std::atomic<bool> b(false);
bool x = b.load();
和
std::atomic<bool> b(false);
b = true;
和...一樣
std::atomic<bool> b(false);
b.store(true);
注意:我已經意識到以下事實:兩個變量不能為std :: atomic,即LHS和RHS,因為不可能在一條指令中進行原子讀寫。
是的,它們是相同的。 我認為提供重載運算符的原因是為了方便。 更不用說使將現有代碼轉換為使用原子更容易了。
就個人而言,我寧願對load
和store
始終保持明確。 我認為這是更好的做法,它會迫使您記住您正在處理原子。
此外,這些功能還允許您指定其他存儲順序,這對於重載的操作員版本是不可能的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.