C++0x reference_closure

reference_closure クラスは、参照環境を持つラムダ式と合わせて使用する


たぶんこんな感じで使用する…はず

#include <iostream>
#include <functional> // reference_closure

using namespace std;

reference_closure<int(int)> foo()
{
    int count = 3;
    return [&](int x){ return x + (++count); };
}

int main()
{
    int value = foo()(2);
    cout << value << endl; // 6

    return 0;
}


reference_closure なんて作るより function をいじってくれーと思いますけどね



ラムダ式(N2550)

N2550 Lambda Expressions and Closures: Wording for Monomorphic Lambdas (Revision 4)

C++0x言語拡張まとめ