函数
<atomic>

std::atomic_flag_test_and_set_explicit

bool atomic_flag_test_and_set (volatile atomic_flag* obj, memory_order sync) noexcept;bool atomic_flag_test_and_set (atomic_flag* obj, memory_order sync) noexcept;
测试并设置原子标志(显式内存顺序)
设置 obj 指向的原子标志,并返回调用前该标志的即时值。

整个操作是原子的(一个*原子读-修改-写*操作):在读取 obj 的值(用于返回)和本函数修改它的时刻之间,obj 的值不会受到其他线程的影响。

有关 atomic_flag 的等效成员函数,请参阅 atomic_flag::test_and_set

参数

obj
指向要设置的 atomic_flag 对象的指针。
sync
操作的同步模式。
这应是 memory_order 枚举类型的一个值。

返回值

如果调用前 obj 已经被设置,则返回 true
否则返回 false

数据竞争

无数据竞争(原子操作)。内存顺序由参数 sync 指定。

异常安全

无异常保证: 绝不抛出异常。

另见