C++11

// <atomic> 
​// 类模板(整体)(1)
template <class T> T atomic_fetch_and (volatile atomic<T>* obj, T val) noexcept;
template <class T> T atomic_fetch_and (atomic<T>* obj, T val) noexcept;
// 重载(2)    
T atomic_fetch_and (volatile A* obj, T val) noexcept;
T atomic_fetch_and (A* obj, T val) noexcept;

将一个原子对象的值与一个非原子参数做逻辑与(Logical AND)操作,其结果保存到原子对象中,且返回原子对象之前的值。