C++11

// <atomic> 
// 类模板(整体)(1)    
template <class T>
    T atomic_fetch_add_explicit
        (volatile atomic<T>* obj,
        T val, memory_order sync) noexcept;
template <class T>
    T atomic_fetch_add_explicit
        (atomic<T>* obj,T val,
​        memory_order sync) noexcept;
// 类模板(指针)(1)    
template <class U>
    U* atomic_fetch_add_explicit
        (volatile atomic<U*>* obj,
        ptrdiff_t val, memory_order sync) noexcept;
template <class U>
    U* atomic_fetch_add_explicit
        (atomic<U*>* obj,ptrdiff_t val,
        memory_order sync) noexcept;
// 重载(2)    
T atomic_fetch_add_explicit (volatile A* obj, M val, memory_order sync) noexcept;
T atomic_fetch_add_explicit (A* obj, M val, memory_order sync) noexcept;

将一个非原子值加到一个原子对象的值上,且返回原子对象之前的值。