BOOST_SCOPE_EXIT_CONFIG_USE_LAMBDASというマクロがあります。これを使うと、BOOST_SCOPE_EXITを使うときの見た目が少しだけ変わります。

#define BOOST_SCOPE_EXIT_CONFIG_USE_LAMBDAS
 
#include <iostream>
#include <boost/scope_exit.hpp>
 
int main()
{
  BOOST_SCOPE_EXIT(void)
  {
    std::cout << "exit" << std::endl;
  };
  std::cout << "Hello world" << std::endl;
}

BOOST_SCOPE_EXIT_ENDの代わりにセミコロンになりました。少しすっきりしましたね。

なお、BOOST_SCOPE_EXIT_CONFIG_USE_LAMBDASを定義している状態でも、依然としてBOOST_SCOPE_EXIT_ENDを使った書き方は可能です。移植性に気を遣う場合はBOOST_SCOPE_EXIT_ENDを使い続けましょうということのようです。

参考: Macro BOOST_SCOPE_EXIT_CONFIG_USE_LAMBDAS – 1.53.0

なお、C++のラムダ式を使ったScope Exitは、BOOST_SCOPE_EXIT_ALLもあります (Macro BOOST_SCOPE_EXIT_ALL – 1.53.0)。

スポンサード リンク

この記事のカテゴリ

  • ⇒ ラムダ式によるすっきりしたScope Exit