【C++】poly_functionが作れなかったのでジェネリックラムダ2つを受け取りどちらかを返す関数型言語のif式っぽいのを作った
前回(【C++雑記】半日ほどstd::functioinのジェネリック版について考えてたけどどう考えても難しい - TXT.TXT)
のだとあんまりにもあんまりなので、ナンカもうそれっぽい事が出来ればいいやとIf関数を作ってみた
https://gist.github.com/Fuyutsubaki/8536703
こんな感じに使う
std::cin >> r; auto f = If(r>0 , [](auto c){std::cout << "(" << c << ")";return 4; } , [](auto c){std::cout << "{" << c << "}";return 2; }); f(42); f("abc");
見ての通りダイナミックに動く。これで多少はpoly_functioinの代わりになるだろうか?