• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    function
    <atomic>

    std::atomic_flag::clear

    void
      clear(memory_order order = memory_order_seq_cst
            ) volatile noexcept;                      // (1) C++11
    
    void
      clear(memory_order order = memory_order_seq_cst
           ) noexcept;                                // (2) C++11
    constexpr void
      clear(memory_order order = memory_order_seq_cst
           ) noexcept;                                // (2) C++26
    

    概要

    フラグをクリアする

    要件

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

    効果

    orderで指定されたメモリオーダーにしたがって、アトミックにfalse値を書き込む。

    戻り値

    なし

    例外

    投げない

    #include <iostream>
    #include <atomic>
    
    int main()
    {
      std::atomic_flag x = ATOMIC_FLAG_INIT;
    
      std::cout << std::boolalpha;
      {
        // 値をtrueに設定する(変更前の値はfalse)
        bool result = x.test_and_set();
        std::cout << result << std::endl;
      }
    
      // 値をfalseにする
      x.clear();
    
      {
        // 値をtrueに設定する(変更前の値はfalse)
        bool result = x.test_and_set();
        std::cout << result << std::endl;
      }
    }
    

    出力

    false
    false
    

    バージョン

    言語

    • C++11

    処理系

    参照