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) |
Атомарно увеличивает или уменьшает текущее значение ссылаемого объекта. Эти операции являются операциями «чтение—модификация—запись».
return fetch_add(1) + 1;.return fetch_add(1);.return fetch_sub(1) - 1;
return fetch_sub(1);.Для целочисленных Integral типов арифметика определяется с использованием представления со знаком в дополнительном коде. Нет неопределённых результатов.
Для T* типов результатом может быть неопределённый адрес, но в остальном операции не имеют неопределённого поведения. Программа является некорректной, если T не является типом объекта.
Параметры
(нет)
Возвращаемое значение
Примечания
В отличие от большинства операторов прединкрементирования и постдинкрементирования, операторы прединкрементирования и постдекрементирования для atomic_ref не возвращают ссылку на изменённый объект. Они возвращают копию сохранённого значения вместо этого.
См. также
| атомарно добавляет аргумент к значению, хранящемуся в ссылаемом объекте, и получает ранее хранящееся значение (публичный член-функция) |
|
| атомарно вычитает аргумент из значения, хранящегося в ссылаемом объекте, и получает ранее хранящееся значение (публичный член-функция) |
|
| атомарно добавляет, вычитает или выполняет побитовое И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ с ссылаемым значением (публичный член-функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/atomic/atomic_ref/operator_arith