std::atomic_ref<T>::operator++,++(int),--,--(int)
来自cppreference.com
< cpp | atomic | atomic ref
atomic< 整数类型 > 特化和 atomic<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);。
对于有符号整数类型,定义算术为使用补码进行。无未定义结果。
对于 T*
类型,结果可为未定义地址,但操作不会另有未定义行为。如果 T
不是对象类型,那么程序非良构。
返回值
1,3) 被引用对象在修改后的值。
2,4) 被引用对象在修改前的值。
注解
与大多数前自增和前自减运算符不同,atomic_ref
的前自增和前自减运算符并不返回到被修改对象的引用。它们代之以返回存储的值的副本。
参阅
原子地将实参加到存储于被引用对象的值上,并获得先前保有的值 (公开成员函数) | |
原子地从存储于被引用对象的值中减去实参,并获得先前保有的值 (公开成员函数) | |
原子地和被引用值加、减 (公开成员函数) | |
原子地和被引用值进行逐位与、或、异或 (公开成员函数) |