std::atomic_fetch_and, std::atomic_fetch_and_explicit

来自cppreference.com
< cpp‎ | atomic

定义于头文件 <atomic>
template< class Integral >
Integral atomic_fetch_and( std::atomic<Integral>* obj, Integral arg );
(1) (C++11 起)
template< class Integral >
Integral atomic_fetch_and( volatile std::atomic<Integral>* obj, Integral arg );
(2) (C++11 起)
template< class Integral >

Integral atomic_fetch_and_explicit( std::atomic<Integral>* obj, Integral arg,

                                    std::memory_order order);
(3) (C++11 起)
template< class Integral >

Integral atomic_fetch_and_explicit( volatile std::atomic<Integral>* obj, Integral arg,

                                    std::memory_order order);
(4) (C++11 起)
1-2)
原子取代所指向的数值arg,按位与的结果之间的旧值objarg,并返回值obj举行之前,如果由obj->fetch_and(arg)
原文:
Atomically replaces the value pointed by arg with the result of bitwise AND between the old value of obj and arg, and returns the value obj held previously, as if by obj->fetch_and(arg)
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
3-4)
原子取代所指向的数值arg,按位与的结果之间的旧值objarg,并返回值obj举行之前,如果由obj->fetch_and(arg, order)
原文:
Atomically replaces the value pointed by arg with the result of bitwise AND between the old value of obj and arg, and returns the value obj held previously, as if by obj->fetch_and(arg, order)
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

目录

[编辑] 参数

obj -
指针的原子对象修改
原文:
pointer to the atomic object to modify
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
arg -
按位AND原子对象中存储的值的值
原文:
the value to bitwise AND to the value stored in the atomic object
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
order -
内存同步进行此操作的顺序:所有的允许值.
原文:
the memory synchronization ordering for this operation: all values are permitted.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 返回值

以前保存的值的原子对象所指向的obj
原文:
The value held previously by the atomic object pointed to by obj
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 例外

noexcept 规定:  
noexcept
  

[编辑] 可能的实现

template< class T >
typename std::enable_if<std::is_integral<T>::value && !std::is_same<T, bool>::value, T>::type
    atomic_fetch_and(std::atomic<T>* obj, T arg);
{
    return obj->fetch_and(arg);
}

[编辑] 示例

[编辑] 另请参阅

原子地进行参数和原子对象的值的逐位与,并获得先前保有的值
(std::atomic 的公开成员函数) [编辑]
将原子对象的值替换为它和非原子对象的值的逻辑OR结果,并返回旧值
原文:
replaces the atomic object with the result of logical OR with a non-atomic argument and obtains the previous value of the atomic
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(函数模板) [编辑]
将原子对象的值替换为它和非原子对象的值的逻辑XOR结果,并返回旧值
原文:
replaces the atomic object with the result of logical XOR with a non-atomic argument and obtains the previous value of the atomic
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(函数模板) [编辑]
atomic_fetch_and, atomic_fetch_and_explicitC 文档