31 Atomic operations library [atomics]

31.8 Class template atomic [atomics.types.generic]

31.8.6 Member operators common to integers and pointers to objects [atomics.types.memop]

value_type operator++(int) volatile noexcept; value_type operator++(int) noexcept;
Constraints: For the volatile overload of this function, is_­always_­lock_­free is true.
Effects: Equivalent to: return fetch_­add(1);
value_type operator--(int) volatile noexcept; value_type operator--(int) noexcept;
Constraints: For the volatile overload of this function, is_­always_­lock_­free is true.
Effects: Equivalent to: return fetch_­sub(1);
value_type operator++() volatile noexcept; value_type operator++() noexcept;
Constraints: For the volatile overload of this function, is_­always_­lock_­free is true.
Effects: Equivalent to: return fetch_­add(1) + 1;
value_type operator--() volatile noexcept; value_type operator--() noexcept;
Constraints: For the volatile overload of this function, is_­always_­lock_­free is true.
Effects: Equivalent to: return fetch_­sub(1) - 1;