atomic_fetch_sub_explicit 将原来的值与旧的值的obj减法结果进行原子替换,并返回先前保存的值。操作是读取 - 修改 - 写入操作。第一个版本根据命令对内存进行访问,第二个版本根据内存访问内存访问。argobjobjmemory_order_seq_cstorder 这是为所有原子对象类型定义的通用函数A。该参数是指向易失性原子类型的指针,...
atomic_fetch_sub_explicit函式在執行read-modify-write作業會以原子方式減去Value中的預存值Atom,藉由套用記憶體的條件約束所指定的Order。 不可部分完成的型別就是當atomic_address, Value有型別ptrdiff_t,並操作會將已儲存的指標視為char *。 需求 標頭: 不可部分完成 Namespace: 標準 請參閱 參考 <atomic>...
C atomic_fetch_sub( volatile A* obj, M arg ); (1) (C11 起) C atomic_fetch_sub_explicit( volatile A* obj, M arg, memory_order order ); (2) (C11 起) 以*obj 的旧值减去 arg 的结果原子地替换 obj 的所指向值,并返回 *obj 先前保有的值。此操作是读修改写操作。第一版本按照 memory...
C atomic_fetch_sub_explicit( volatile A* obj, M arg, memory_order order ); (2) (C11 起) 以*obj 的旧值减去 arg 的结果原子地替换 obj 的所指向值,并返回 *obj 先前保有的值。此操作是读修改写操作。第一版本按照 memory_order_seq_cst 排序内存访问,第二版本按照 order 排序内存访问。
T atomic_fetch_sub_explicit( std::atomic<T>* obj, typename std::atomic<T>::difference_type arg, std::memory_order order ) noexcept; (3) (since C++11) template< class T > T atomic_fetch_sub_explicit( volatile std::atomic<T>* obj, typename std::atomic<T>::difference_type arg...
C atomic_fetch_sub_explicit(volatileA*obj, M arg,memory_orderorder); (2)(since C11) Atomically replaces the value pointed byobjwith the result of subtraction ofargfrom the old value ofobj, and returns the valueobjheld previously. The operation is read-modify-write operation. The first vers...
T atomic_fetch_sub_explicit( volatile std::atomic<T>* obj, typename std::atomic<T>::difference_type arg, std::memory_order order ) noexcept;进行原子减法。 原子地从 obj 所指向的值减去 arg ,并返回 obj 先前保有的值。如同执行下列内容一样进行运算: 1...
atomic_fetch_sub_explicit函数执行 read-modify-write 操作,在由 Order 指定的memory_order约束内,自动从 Atom 中存储的值减去 Value。 当原子类型为atomic_address,Value 具有类型ptrdiff_t且操作将已存储的指针作为 char * 处理。 此操作也为整数类型重载: ...
C atomic_fetch_sub( volatile A* obj, M arg ); (1) (since C11) C atomic_fetch_sub_explicit( volatile A* obj, M arg, memory_order order ); (2) (since C11) Atomically replaces the value pointed by obj with the result of subtraction of arg from the old value of obj, and ret...
T atomic_fetch_sub_explicit( std::atomic<T>* obj, typename std::atomic<T>::difference_type arg, std::memory_order order ) noexcept; template< class T > T atomic_fetch_sub_explicit( volatile std::atomic<T>* obj, typename std::atomic<T>::difference_type arg, std::memory_order ...