lock_guard クラス
オブジェクトを作成し、そのデストラクタ―が mutex
のロックを解除するためにインスタンス化できるテンプレートを表します。
構文
template <class Mutex>
class lock_guard;
解説
テンプレート引数 Mutex
には mutex 型を指定する必要があります。
メンバー
パブリック typedef
名前 | 説明 |
---|---|
lock_guard::mutex_type |
テンプレート引数 Mutex のシノニム。 |
パブリック コンストラクター
名前 | 説明 |
---|---|
lock_guard | lock_guard オブジェクトを構築します。 |
lock_guard::~lock_guard デストラクター | コンストラクターに渡された mutex をロック解除します。 |
要件
ヘッダー:<mutex>
名前空間: std
lock_guard::lock_guard コンストラクター
lock_guard
オブジェクトを構築します。
explicit lock_guard(mutex_type& Mtx);
lock_guard(mutex_type& Mtx, adopt_lock_t);
パラメーター
Mtx
mutex 型オブジェクト。
解説
1 番目のコンストラクターは lock_guard
型のオブジェクトを構築し、Mtx をロックします。 Mtx が再帰的なミューテックスではない場合、このコンストラクターが呼び出されたときにロック解除される必要があります。
2 番目のコンストラクターは Mtx をロックしません。 Mtx は、このコンストラクターが呼び出されたときにロックされる必要があります。 このコンストラクターでは例外はスローされません。
lock_guard::~lock_guard デストラクター
コンストラクターに渡された mutex
をロック解除します。
~lock_guard() noexcept;
解説
デストラクターの実行時に mutex
が存在しない場合の動作は未定義です。