• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

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

    履歴 編集

    function
    <shared_mutex>

    std::shared_lock::lock

    void lock();
    

    概要

    共有ロックを取得する

    効果

    pm->lock_shared();
    

    pmはメンバ変数として保持している、ミューテックスオブジェクトへのポインタ

    事後条件

    owns_lock() == true

    戻り値

    なし

    例外

    この関数は、pm->lock() 関数内で投げられうるあらゆる例外を投げる可能性がある。

    そのほかに、以下のerror conditionを持つsystem_error例外オブジェクトを送出する可能性がある:

    #include <cassert>
    #include <shared_mutex>
    
    int main()
    {
      std::shared_timed_mutex mtx;
      {
        // 遅延ロックする(ここではロックを取得しない)
        std::shared_lock<std::shared_timed_mutex> lock(mtx, std::defer_lock);
    
        // 共有ロックを取得する
        lock.lock();
    
        assert(lock.owns_lock() == true);
      }
    }
    

    出力

    バージョン

    言語

    • C++14

    処理系