std:: shared_lock
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Shared locking | ||||
| Modifiers | ||||
| Observers | ||||
| Non-member functions | ||||
|
ヘッダーで定義
<shared_mutex>
|
||
|
template
<
class
Mutex
>
class shared_lock ; |
(C++14以降) | |
shared_lock
クラスは、遅延ロック、時間指定ロック、ロック所有権の転送を可能にする汎用共有ミューテックス所有権ラッパーです。
shared_lock
をロックすると、関連付けられた共有ミューテックスが共有モードでロックされます(排他モードでロックするには、
std::unique_lock
を使用できます)。
shared_lock
クラスはムーブ可能ですが、コピー可能ではありません – これは
MoveConstructible
および
MoveAssignable
の要件を満たしますが、
CopyConstructible
や
CopyAssignable
の要件は満たしません。
shared_lock
は
Lockable
要件を満たす。
Mutex
が
SharedTimedLockable
要件を満たす場合、
shared_lock
は
TimedLockable
要件も満たす。
共有所有権モードで共有ミューテックスの待機を行うには、 std::condition_variable_any を使用できます( std::condition_variable は std::unique_lock を必要とするため、排他所有権モードでのみ待機可能です)。
目次 |
テンプレートパラメータ
| Mutex | - | 共有ミューテックスの型。この型は SharedLockable 要件を満たさなければならない |
メンバー型
| 型 | 定義 |
mutex_type
|
Mutex
|
メンバー関数
shared_lock
を構築し、オプションで指定されたミューテックスをロックする
(public member function) |
|
|
関連付けられたミューテックスをアンロックする
(public member function) |
|
|
所有している場合はミューテックスをアンロックし、別のミューテックスの所有権を取得する
(public member function) |
|
共有ロック |
|
|
関連付けられたミューテックスをロックする
(public member function) |
|
|
関連付けられたミューテックスのロックを試みる
(public member function) |
|
|
指定された期間、関連付けられたミューテックスのロックを試みる
(public member function) |
|
|
指定された時間ポイントまで、関連付けられたミューテックスのロックを試みる
(public member function) |
|
|
関連付けられたミューテックスをアンロックする
(public member function) |
|
修飾子 |
|
データメンバを別の
shared_lock
と交換する
(public member function) |
|
|
アンロックせずにミューテックスとの関連付けを解除する
(public member function) |
|
オブザーバ |
|
|
関連付けられたミューテックスへのポインタを返す
(public member function) |
|
|
ロックが関連付けられたミューテックスを所有しているかどうかをテストする
(public member function) |
|
|
ロックが関連付けられたミューテックスを所有しているかどうかをテストする
(public member function) |
|
非メンバー関数
|
(C++14)
|
std::swap
アルゴリズムを特殊化
(関数テンプレート) |
不具合報告
以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。
| DR | 適用対象 | 公開時の動作 | 正しい動作 |
|---|---|---|---|
| LWG 2981 | C++17 |
shared_lock<Mutex>
からの冗長なデダクションガイドが提供されていた
|
削除 |