voidatomic_store_explicit(volatilestd::atomic<T>*obj, typenamestd::atomic<T>::value_typedesr, std::memory_orderorder)noexcept; 1)如同用obj->store(desr)原子地以desr的值替换obj所指向的值。 2)如同用obj->store(desr, order)原子地以desr的值替换obj所指向的值。
voidatomic_store_explicit(volatilestd::atomic<T>*obj, typenamestd::atomic<T>::value_typedesired, std::memory_orderorder)noexcept; (4)(since C++11) 1,2)Atomically replaces the value pointed to byobjwith the value ofdesiredas if byobj->store(desired). ...
void atomic_store_explicit( std::atomic<T>* obj, typename std::atomic<T>::value_type desr, std::memory_order order) noexcept; template< class T > void atomic_store_explicit( volatile std::atomic<T>* obj, typename std::atomic<T>::value_type desr, std::memory_order order) noexcept;...
order必须是std::memory_order_relaxed、std::memory_order_release或std::memory_order_seq_cst之一。否则行为未定义。 参数 desired-存储到原子变量中的值 order-强制的内存顺序 返回值 (无) 参阅 operator= 存储值于原子对象 (公开成员函数) atomic_storeatomic_store_explicit ...
对std::shared_ptr和std::weak_ptr的部分特化std::atomic>和std::atomic>。 对于整型类型的特化: 当与以下整型类型之一实例化时,std::atomic提供适用于整型类型的额外 原子操作,如fetch_add,fetch_sub,fetch_and,fetch_or,fetch_xor: 字符类型char,char8_t(自 C++20 起),char16_t,char32_t和wchar_t; ...
(std::atomic_exchange_explicit(&lock, true, std::memory_order_acquire)) ; // 自旋直至获得 std::cout << "Output from thread " << n << '\n'; std::atomic_store_explicit(&lock, false, std::memory_order_release); } } int main() { std::vector<std::thread> v; for (int n =...
若std::atomic<T>::is_always_lock_free 为 false 则 volatile 限定版本被弃用。 (C++20 起) 参数 desired - 存储到原子变量中的值 order - 强制的内存顺序 返回值 (无) 参阅 operator= 存储值于原子对象(公开成员函数) atomic_storeatomic_store_explicit(C++11)(C++11) 原子地以非原子实参替换原子对象的...
若std::atomic<T>::is_always_lock_free为false则 volatile 限定版本被弃用。 (C++20 起) 参数 desired-存储到原子变量中的值 order-强制的内存顺序 返回值 (无) 参阅 operator= 存储值于原子对象 (公开成员函数) atomic_storeatomic_store_explicit ...
voidatomic_store_explicit (std::shared_ptr<T>*p,std::shared_ptr<T>r, std::memory_ordermo); (5)(since C++11) (deprecated in C++20) (removed in C++26) template<classT> std::shared_ptr<T>atomic_exchange (std::shared_ptr<T>*p,std::shared_ptr<T>r); ...
void atomic_store_explicit ( std::shared_ptr<T>* p, std::shared_ptr<T> r, std::memory_order mo ); (5) (C++11 起) (C++20 弃用) (C++26 移除) template< class T > std::shared_ptr<T> atomic_exchange ( std::shared_ptr<T>* p, std::shared_ptr<T> r ); (6) (C++11 ...