Spec-Zone.ru › C++

std::atomic_ref<T>::exchange

value_type exchange( value_type desired,
                     std::memory_order order =
                         std::memory_order_seq_cst ) const noexcept;
(constexpr since C++26)

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

Эта перегрузка участвует в разрешении перегрузки только в том случае, если std::is_const_v<T> является false.

Параметры

desired - значение для присваивания
order - ограничения порядка памяти, которые необходимо соблюдать

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

Значение объекта, на который имеется ссылка, до вызова.

Отчёты об ошибках

Следующие отчёты об ошибках, изменяющие поведение, были ретроактивно применены к ранее опубликованным стандартам C++.

DR Применяется к Поведение согласно опубликованной версии Правильное поведение
LWG 3508
(P3323R1)
C++20 exchange не имело смысла для constT ограничена приёмом только неконстантных T

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/atomic/atomic_ref/exchange

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API