table of contents
        
      
      
    | 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, (1)
  
   std::memory_order order = std::memory_order_seq_cst ) const noexcept;
  
   member only of atomic_ref<T*> template specialization
  
   T* fetch_add( std::ptrdiff_t arg, (2)
  
   std::memory_order order = std::memory_order_seq_cst ) 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-modify-write
  
   operation. Memory is affected according to the value of order.
  
   For signed integral types, arithmetic is defined to use two’s
    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 encouraged 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 object
    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
| 2022.07.31 | http://cppreference.com |