Spec-Zone.ru › C++

std::atomic_ref<T>::operator++,++(int),--,--(int)

member only of atomic_ref<Integral> and atomic_ref<T*> template specializations
value_type operator++() const noexcept;
(1) (since C++20)
value_type operator++( int ) const noexcept;
(2) (since C++20)
value_type operator--() const noexcept;
(3) (since C++20)
value_type operator--( int ) const noexcept;
(4) (since C++20)

Атомарно увеличивает или уменьшает текущее значение ссылаемого объекта. Эти операции являются операциями «чтение—модификация—запись».

1) Выполняет атомарное прединкрементирование. Эквивалентно return fetch_add(1) + 1;.
2) Выполняет атомарное постдинкрементирование. Эквивалентно return fetch_add(1);.
3) Выполняет атомарное предекрементирование. Эквивалентно return fetch_sub(1) - 1;
4) Выполняет атомарное постдекрементирование. Эквивалентно return fetch_sub(1);.

Для целочисленных Integral типов арифметика определяется с использованием представления со знаком в дополнительном коде. Нет неопределённых результатов.

Для T* типов результатом может быть неопределённый адрес, но в остальном операции не имеют неопределённого поведения. Программа является некорректной, если T не является типом объекта.

Параметры

(нет)

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

1,3) Значение ссылаемого объекта после модификации.
2,4) Значение ссылаемого объекта до модификации.

Примечания

В отличие от большинства операторов прединкрементирования и постдинкрементирования, операторы прединкрементирования и постдекрементирования для atomic_ref не возвращают ссылку на изменённый объект. Они возвращают копию сохранённого значения вместо этого.

См. также

fetch_add
атомарно добавляет аргумент к значению, хранящемуся в ссылаемом объекте, и получает ранее хранящееся значение
(публичный член-функция)
fetch_sub
атомарно вычитает аргумент из значения, хранящегося в ссылаемом объекте, и получает ранее хранящееся значение
(публичный член-функция)
operator+=operator-=operator&=operator|=operator^=
атомарно добавляет, вычитает или выполняет побитовое И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ с ссылаемым значением
(публичный член-функция)

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

Spec-Zone.ru

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