Namespaces
Variants

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

From cppreference.net
shared_ptr < T > exchange ( shared_ptr < T > desired, std:: memory_order order = std:: memory_order_seq_cst ) noexcept ;
**Примечание:** В данном случае весь текст внутри тегов ` ` представляет собой C++ код, который согласно инструкциям не подлежит переводу. HTML структура и атрибуты полностью сохранены в оригинальном виде.

Атомарно заменяет базовый shared_ptr на desired . Операция является операцией чтения-изменения-записи. Память затрагивается в соответствии со значением order .

Содержание

Параметры

desired - значение для присваивания
order - ограничения порядка памяти для применения

Возвращаемое значение

Значение атомарной переменной до вызова.

Примечания

Все изменения самого объекта atomic_shared_ptr и все связанные инкременты use_count гарантированно выполняются атомарно. Связанные декременты use_count происходят после атомарной операции, но не требуют быть её частью. Любые связанные операции разрушения или освобождения памяти происходят после атомарной операции и не являются её частью.

Смотрите также

специализирует атомарные операции для std::shared_ptr
(шаблон функции)