atomic_atomic_flag_test
atomic_atomic_flag_test (원자적 플래그 확인)
std::atomic_flag_test는 std::atomic_flag의 현재 값을 수정 없이 반환해요. C++20의 test_and_set와 달리 값만 읽는 연산이에요.
출처: cppreference
본문
std::atomic_flag_test와 std::atomic_flag_test_explicit는 <atomic> 헤더에 정의된 자유 함수예요. C++20부터 사용 가능해요.
bool atomic_flag_test( const std::atomic_flag* flag ) noexcept;
bool atomic_flag_test_explicit( const std::atomic_flag* flag,
std::memory_order order ) noexcept;
flag가 가리키는 std::atomic_flag의 현재 값을 원자적으로 읽어 반환해요. 값을 변경하지 않아요. flag->test(order)처럼 동작해요.
반환값 (Return value)
플래그의 현재 값이에요.
예제 (Example)
#include <atomic>
#include <iostream>
std::atomic_flag f = ATOMIC_FLAG_INIT;
int main()
{
bool v = std::atomic_flag_test(&f);
std::cout << v << '\n'; // 0
std::atomic_flag_test_and_set(&f);
std::cout << std::atomic_flag_test(&f) << '\n'; // 1
}