◐ Shell
clean mode source ↗

std::shared_lock - cppreference.com

提供: cppreference.com

<tbody> </tbody>

template< class Mutex > class shared_lock;

(C++14以上)

shared_lock クラスは遅延ロック、タイムアウト付きロック、ロック所有権の転送をサポートする汎用の共有ミューテックス所有権ラッパーです。 shared_lock は紐付けられている共有ミューテックスを共有モードでロックします (排他モードでロックするためには std::unique_lock を使用できます)。

shared_lock クラスはムーブ可能ですが、コピー可能ではありません。 MoveConstructible および MoveAssignable の要件は満たしますが、 CopyConstructible および CopyAssignable の要件は満たしません。

共有ミューテックスを共有所有権モードで待機するためには、 std::condition_variable_any を使用することができます (std::condition_variablestd::unique_lock を要求し、排他所有権モードでしか待機することができません)。

テンプレート引数

メンバ型

メンバ関数

shared_lock を構築し、オプションで指定されたミューテックスをロックします
(パブリックメンバ関数) [edit]
紐付けられているミューテックスのロックを解除します
(パブリックメンバ関数) [edit]
所有していればミューテックスのロックを解除し、別の所有権を取得します
(パブリックメンバ関数) [edit]
共有ロック
紐付けられているミューテックスをロックします
(パブリックメンバ関数) [edit]
紐付けられているミューテックスのロックを試みます
(パブリックメンバ関数) [edit]
指定された時間の間、紐付けられているミューテックスのロックを試みます
(パブリックメンバ関数) [edit]
指定された時点まで、紐付けられているミューテックスのロックを試みます
(パブリックメンバ関数) [edit]
紐付けられているミューテックスのロックを解除します
(パブリックメンバ関数) [edit]
変更
データメンバを他の shared_lock と交換します
(パブリックメンバ関数) [edit]
ロックを解除せずにミューテックスとの紐付けを解除します
(パブリックメンバ関数) [edit]
観察
紐付けられているミューテックスを指すポインタを返します
(パブリックメンバ関数) [edit]
紐付けられているミューテックスの所有権を保持しているかどうか調べます
(パブリックメンバ関数) [edit]
紐付けられているミューテックスの所有権を保持しているかどうか調べます
(パブリックメンバ関数) [edit]

非メンバ関数

欠陥報告

以下の動作変更欠陥報告は以前に発行された C++ 標準に遡って適用されました。

DR 適用先 発行時の動作 正しい動作
LWG 2981 C++17 shared_lock<Mutex> からの冗長な推定ガイドが提供されていました 削除されました