32 Concurrency support library [thread]

32.5 Atomic operations [atomics]

32.5.7 Class template atomic_ref [atomics.ref.generic]

32.5.7.6 Member operators common to integers and pointers to objects [atomics.ref.memop]

Let referred-type be pointer-type for the specializations in [atomics.ref.pointer] and be integral-type for the specializations in [atomics.ref.int].
constexpr value_type operator++(int) const noexcept;
Constraints: is_const_v<referred-type> is false.
Effects: Equivalent to: return fetch_add(1);
constexpr value_type operator--(int) const noexcept;
Constraints: is_const_v<referred-type> is false.
Effects: Equivalent to: return fetch_sub(1);
constexpr value_type operator++() const noexcept;
Constraints: is_const_v<referred-type> is false.
Effects: Equivalent to: return fetch_add(1) + 1;
constexpr value_type operator--() const noexcept;
Constraints: is_const_v<referred-type> is false.
Effects: Equivalent to: return fetch_sub(1) - 1;