次の方法で共有


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 が存在しない場合の動作は未定義です。

関連項目

ヘッダー ファイル リファレンス
<mutex>