AM Daemon ライブラリリファレンス
公開メンバ関数 | 全メンバ一覧
amdaemon::util::ScopeExit クラス

スコープが外れた時に任意の処理を行うクラス。 [詳解]

#include <ScopeExit.h>

公開メンバ関数

 ScopeExit (std::function< void()> exitFunc)
 コンストラクタ。 [詳解]
 
 ScopeExit (ScopeExit &&src)
 ムーブコンストラクタ。 [詳解]
 
 ‾ScopeExit ()
 デストラクタ。 [詳解]
 
ScopeExitoperator= (ScopeExit &&r)
 ムーブ代入演算子のオーバロード。 [詳解]
 

詳解

スコープが外れた時に任意の処理を行うクラス。

主に関数から抜ける際に特定の処理を確実に行わせたい場合に用いる。

bool func()
{
// 関数を抜ける際に解放処理が必要。
int* values = new int[100];
// この関数から抜ける際、確実に values を解放する。
amdaemon::util::ScopeExit valuesDeleter = [values] { delete [] values; };
// …中略…
// ここで呼び出し元に処理を戻す際、 valuesDeleter のデストラクタが呼ばれ、
// その中で delete [] values; が行われる。
return true;
}

構築子と解体子

amdaemon::util::ScopeExit::ScopeExit ( std::function< void()>  exitFunc)
inline

コンストラクタ。

引数
[in]exitFuncデストラクタで呼び出させる終了処理関数。
amdaemon::util::ScopeExit::ScopeExit ( ScopeExit &&  src)
inline

ムーブコンストラクタ。

引数
[in]srcムーブ元。
amdaemon::util::ScopeExit::‾ScopeExit ( )
inline

デストラクタ。

コンストラクタで渡した終了処理関数が呼び出される。

関数詳解

ScopeExit& amdaemon::util::ScopeExit::operator= ( ScopeExit &&  r)
inline

ムーブ代入演算子のオーバロード。

引数
[in]r右辺値。
戻り値
自身の参照。

このクラス詳解は次のファイルから抽出されました: