C ++ 11でラムダ関数を返す関数を書くことは可能だろうか。もちろん、1つの問題は、そのような関数をどのように宣言するかです。各ラムダには型がありますが、その型はC ++では表現できません。私はこれがうまくいくとは思いません:
auto retFun() -> decltype ([](int x) -> int)
{
return [](int x) { return x; }
}
これも:
int(int) retFun();
ラムダから関数へのポインターなどへの自動変換については知りません。関数オブジェクトを手作りして返す唯一の解決策はありますか?