home | help
std::atomic_ref::fetch_add(3)  C++ Standard Libary std::atomic_ref::fetch_add(3)

NAME
     std::atomic_ref::fetch_add - std::atomic_ref::fetch_add

Synopsis
	member only of atomic_ref<Integral> and atomic_ref<Floating>
	template specializations
	T fetch_add( T arg,
		     std::memory_order	order  = std::memory_order_seq_cst ) (1)
     (since C++20)
	const noexcept;
	member only of atomic_ref<T*> template specialization
	T* fetch_add( std::ptrdiff_t arg,
		      std::memory_order order =  std::memory_order_seq_cst   (2)
     (since C++20)
	) const noexcept;

	Atomically  replaces the current value of the referenced object with the
     result of
	arithmetic addition of the value and arg. This operation is a  read-mod-
     ify-write
	operation. Memory is affected according to the value of order.

	For signed integral types, arithmetic is defined to use twoas complement
	representation. There are no undefined results.

	For  floating-point  types, the floating-point environment in effect may
     be different
	from the calling thread's floating-point environment. The operation need
     not be
	conform to the corresponding std::numeric_limits traits but  is  encour-
     aged to do so.
	If  the  result is not a representable value for its type, the result is
     unspecified
	but the operation otherwise has no undefined behavior.

	For T* types, the result may be an undefined address, but the  operation
     otherwise
	has  no undefined behavior. The program is ill-formed if T is not an ob-
     ject type.

Parameters
	arg   - the other argument of arithmetic addition
	order - memory order constraints to enforce

Return value
	The value of the referenced object, immediately preceding the effects of
     this
	function.

Example
	 This section is incomplete
	 Reason: no example

Category:
	  * Todo no example

http://cppreference.com 	   2024.06.10	   std::atomic_ref::fetch_add(3)

home | help