![](/img/trans.png)
[英]Why isn't std::atomic_is_lock_free a static constexpr?
[英]What is the c-style atomic free function like std::atomic_is_lock_free for?
我知道std::atomic_is_lock_free
是對應於std::atomic<T>::is_lock_free
。
但是這個 function 的參數就像std::atomic_is_lock_free(const std::atomic<T>*)
。 std::atomic<T>
不是 c 風格的語法,因此std::atomic_is_lock_free
都不能在 c 文件中使用。
那么為什么要推出這款c風格的免費function呢? 這個有什么用?
編輯:
下面是 C++ Concurrency in Action 的解釋。
自由函數被設計為與 C 兼容,因此它們在所有情況下都使用指針而不是引用。 例如......
它說免費的 function 用於 C 兼容性。 但我想不出一個很好的例子。
似乎沒有任何區別,因為根據草案語言,這兩個函數都需要一個實際的 object,甚至對兩者都給出了完全相同的描述。
這似乎是“對於相同類型的所有原子對象的無鎖查詢的結果是相同的”要求之前的保留......鑒於該要求,能夠在沒有任何 object 實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.