std::atomic_ref<T>:: operator++,++ (int) ,--,-- (int)
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
|
(C++26)
|
||||
|
Operations for arithmetic types
(except
bool
and pointer-to-object)
|
||||
|
Operations for integral types
(except
bool
and pointer-to-object)
|
||||
|
(C++26)
|
||||
|
(C++26)
|
||||
|
atomic_ref::operator++
atomic_ref::operator++(int)
atomic_ref::operator--
atomic_ref::operator--(int)
|
||||
|
Operations for integral types
(except
bool
)
|
||||
| Constants | ||||
|
Предоставляется только когда
T
является целочисленным типом, отличным от
cv
bool
или типом указателя на объект
|
||
|
value_type operator
++
(
)
const
noexcept
;
|
(1) | (начиная с C++20) |
|
value_type operator
++
(
int
)
const
noexcept
;
|
(2) | (начиная с C++20) |
|
value_type operator
--
(
)
const
noexcept
;
|
(3) | (начиная с C++20) |
|
value_type operator
--
(
int
)
const
noexcept
;
|
(4) | (начиная с C++20) |
Атомарно увеличивает или уменьшает текущее значение ссылаемого объекта. Эти операции являются операциями чтения-изменения-записи.
- Для знаковых целочисленных типов арифметика определена с использованием дополнительного кода. Неопределённых результатов не существует.
- Для типов указателей на объекты результат может быть неопределённым адресом, но в остальном операции не имеют неопределённого поведения. Программа является некорректной, если std:: remove_pointer_t < T > не является полным типом объекта.
Эти перегрузки участвуют в разрешении перегрузки только если std:: is_const_v < T > равно false .
Содержание |
Возвращаемое значение
Примечания
В отличие от большинства операторов пре-инкремента и пре-декремента, операторы пре-инкремента и пре-декремента для
atomic_ref
не возвращают ссылку на модифицированный объект. Вместо этого они возвращают копию хранимого значения.
Отчёты о дефектах
Следующие отчеты об изменениях в поведении, содержащие описания дефектов, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
|
LWG 3508
( P3323R1 ) |
C++20 | операторы инкремента и декремента были бессмысленны для const T |
ограничены для приема только неконстантного
T
|
Смотрите также
|
атомически добавляет аргумент к значению, хранящемуся в ссылочном объекте, и получает значение, хранившееся ранее
(публичная функция-член) |
|
|
атомически вычитает аргумент из значения, хранящегося в ссылочном объекте, и получает значение, хранившееся ранее
(публичная функция-член) |
|
|
атомически добавляет к ссылочному значению или вычитает из него
(публичная функция-член) |
|
|
атомически выполняет побитовые операции AND, OR, XOR со ссылочным значением
(публичная функция-член) |