以下の内容はhttps://faithandbrave.hateblo.jp/entry/20090209/1234183069より取得しました。


Boost.ScopeExit使ってみた

ScopeExitはスコープを抜けたときに実行されるブロックを定義できます。
C++0xのラムダ式風に変数をキャプチャすることができます。

#include <iterator>
#include <iostream>
#include <vector>
#include <algorithm>
#include <boost/scope_exit.hpp>

using namespace std;

vector<int> v;

void foo()
{
    int index = 1;
    v.push_back(1);

    // スコープ抜けたらこのブロックを実行(indexはコピー、vは参照でキャプチャ)
    BOOST_SCOPE_EXIT((index)(&v)) {
        v[index] = 8;
        v.pop_back();
    } BOOST_SCOPE_EXIT_END;

    v.push_back(2);
    v.push_back(3);
}

int main()
{
    foo();

    copy(v.begin(), v.end(), ostream_iterator<int>(cout, "\n")); // 1, 8
}





以上の内容はhttps://faithandbrave.hateblo.jp/entry/20090209/1234183069より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14