std::atomic_ref<T>::operator++,++(int),--,--(int)
< cpp | atomic | atomic ref
仅为 atomic_ref<Integral> 与 atomic_ref<T*> 模板特化的成员 |
||
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 起) |
原子地自增或自减被引用对象的当前值。这些操作是读修改写操作。
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
的前自增和前自减运算符不返回到被修改对象的引用。它们替而返回存储的值的副本。
参阅
原子地将参数加到存储于被引用对象的值,并获得先前保有的值 (公开成员函数) | |
原子地从存储于被引用对象的值减去参数,并获得先前保有的值 (公开成员函数) | |
原子地和被引用值加、减或者进行逐位与、或、异或 (公开成员函数) |