命名空间
变体
操作

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

来自 cppreference.com
 
 
实验性
技术规范
文件系统库 (文件系统 TS)
库基础 (库基础 TS)
库基础 2 (库基础 TS v2)
库基础 3 (库基础 TS v3)
并行扩展 (并行 TS)
并行扩展 2 (并行 TS v2)
并发扩展 (并发 TS)
并发扩展 2 (并发 TS v2)
概念 (概念 TS)
范围 (范围 TS)
反射 (反射 TS)
数学特殊函数 (特殊函数 TR)
实验性非 TS
模式匹配
线性代数
std::execution
契约
2D 图形
 
 
 
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 的原子操作
(函数模板) [编辑]