ラムダを返すラムダの定義
知らなかったので覚書。
[ソース]
#include <iostream> int main(){ using result_type = void(*)(); using func_type = result_type(*)(); // 戻り値型を定義しないとエラー // func_type f = []{ func_type f = []()->result_type{ return []{ std::cout << "hello, world" << std::endl; }; }; f()(); return 0; }
[出力]
hello, world
なるほど、戻り値型を定義すればよかったんですね。