atomic_atomic_flag_test

atomic_atomic_flag_test (원자적 플래그 확인)

std::atomic_flag_teststd::atomic_flag의 현재 값을 수정 없이 반환해요. C++20의 test_and_set와 달리 값만 읽는 연산이에요.

출처: cppreference

본문

std::atomic_flag_teststd::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
}

더 알아보기 (Learn more)

cppreference