Skip to content

Latest commit

 

History

History
83 lines (59 loc) · 2.15 KB

atomic_flag_test_explicit.md

File metadata and controls

83 lines (59 loc) · 2.15 KB

atomic_flag_test_explicit

  • atomic[meta header]
  • std[meta namespace]
  • function[meta id-type]
  • cpp20[meta cpp]
namespace std {
  bool atomic_flag_test_explicit(const volatile atomic_flag* object,
                                 memory_order order) noexcept;  // (1) C++20
  bool atomic_flag_test_explicit(const atomic_flag* object,
                                 memory_order order) noexcept;  // (2) C++20
}
  • memory_order[link /reference/atomic/memory_order.md]

概要

現在の値をbool値として取得する。

要件

orderが以下のメモリオーダーではないこと:

効果

order値によってメモリに影響がある

戻り値

アトミックに読み込まれた*thisが指している値を返す

例外

投げない

#include <iostream>
#include <atomic>

int main()
{
  std::cout << std::boolalpha;

  std::atomic_flag x = ATOMIC_FLAG_INIT;
  std::cout << std::atomic_flag_test_explicit(&x, std::memory_order::acquire) << std::endl;

  std::atomic_flag_test_and_set(&x, std::memory_order::release);
  std::cout << std::atomic_flag_test_explicit(&x, std::memory_order::acquire) << std::endl;
}
  • std::atomic_flag_test_explicit[color ff0000]
  • std::atomic_flag_test_and_set[link atomic_flag_test_and_set.md]
  • ATOMIC_FLAG_INIT[link /reference/atomic/atomic_flag_init.md]
  • memory_order[link /reference/atomic/memory_order.md]

出力

false
true

バージョン

言語

  • C++20

処理系

  • Clang: (9.0時点で実装なし)
  • GCC: (9.2時点で実装なし)
  • Visual C++: (2019 Update 3時点で実装なし)

参照