ラムダをC#で大量に使用した後、C++でラムダを操作しようとしています。私は現在ブーストタプルを持っています(これは本当に単純化されたバージョンです)。
typedef shared_ptr<Foo> (*StringFooCreator)(std::string, int, bool)
typedef tuple<StringFooCreator> FooTuple
次に、グローバル名前空間の関数をFooTupleにロードします。理想的には、これをラムダに置き換えたいと思います。
tuplearray[i] = FooTuple([](string bar, int rc, bool eom) -> {return shared_ptr<Foo>(new Foo(bar, rc, eom));});
ラムダタプルの関数シグネチャがどうあるべきかわかりません。明らかに関数ポインタではありませんが、ラムダのシグネチャがどうあるべきか理解できません。現在、ラムダのリソースはすべてかなり薄いです。現在、C ++ 0xが流動的であることに気づきましたが、これを機能させる方法に興味がありました。これを行うにはもっと簡単な方法があることもわかっていますが、私はC++0xで遊んでいます。Intel11.1コンパイラを使用しています。