std::shared_lock - cppreference.com
提供: cppreference.com
<tbody> </tbody>
|
|
(C++14以上) | |
shared_lock クラスは遅延ロック、タイムアウト付きロック、ロック所有権の転送をサポートする汎用の共有ミューテックス所有権ラッパーです。 shared_lock は紐付けられている共有ミューテックスを共有モードでロックします (排他モードでロックするためには std::unique_lock を使用できます)。
shared_lock クラスはムーブ可能ですが、コピー可能ではありません。 MoveConstructible および MoveAssignable の要件は満たしますが、 CopyConstructible および CopyAssignable の要件は満たしません。
共有ミューテックスを共有所有権モードで待機するためには、 std::condition_variable_any を使用することができます (std::condition_variable は std::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> からの冗長な推定ガイドが提供されていました
|
削除されました |