Boost.ScopeExit 使ってみた
そういえば、使ったことがないので試してみた。
Boost.ScopeExit を使用すると『そのスコープを抜けるときの処理』を記述する事ができます。
例えば、スコープの最初の方に『最後に呼ばれる処理』みたいなことを定義する事ができます。
[ソース]
#define BOOST_SCOPE_EXIT_CONFIG_USE_LAMBDAS #include <boost/scope_exit.hpp> #include <iostream> int main(){ BOOST_SCOPE_EXIT(void){ std::cout << "小梅" << std::endl; }; BOOST_SCOPE_EXIT(void){ std::cout << "幸子" << std::endl; }; std::cout << "ちひろ" << std::endl; return 0; }
[出力]
ちひろ 幸子 小梅
C++11 の場合は BOOST_SCOPE_EXIT_CONFIG_USE_LAMBDAS を定義しておくことで内部でラムダが使用されるようになり、すっきりと書けるようになります。