std::experimental::atomic_weak_ptr<T>::exchange

weak_ptr<T> exchange( weak_ptr<T> desired, std::memory_order order = std::memory_order_seq_cst ) noexcept;

原子地以 desired 替换底层 weak_ptr。此操作是读修改写操作。根据 order 的值影响内存。

参数

desired - 要赋的值
order - 要强制的内存定序约束

返回值

调用前原子变量的值。

说明

atomic_weak_ptr 对象自身的所有改动,所有关联的 use_count 自增均保证作原子地实施。所有关联的 use_count 自减都在原子操作之后发生,而并不要求是其一部分。任何关联的析构或解分配操作均在验证操作之后发生,且不是其一部分。

参阅

std::shared_ptr 特化的原子操作
(函数模板)