std::experimental::atomic_shared_ptr<T>::exchange

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

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

参数

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

返回值

调用前原子变量的值。

说明

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

参阅

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