Namespaces
Variants

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

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

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

Содержание

Параметры

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

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

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

Примечания

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

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

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