C++でラムダ式を再帰させる

ラムダ式を再帰させたい、そんな場面は少なからずあるだろう。
もちろんC++的にはループで処理したり、STLコンテナにブチ込んで for_each させたほうが性能は出るのかもしれないが、再帰処理によるコンパクトなコードは魅力である。
管理すべき変数が減るのも頭に優しい。
そういう意味で使い捨ての関数にも名前を付けたくない、ならばラムダだ。

しかし、はて、ラムダには名前がない。
呼ぶべき自分の名前が分からない。
いや、ラムダ式なので名前というよりかは自分の姿か。

続きを読む →

Modern C++17 Snippets

よく使うコード断片を集めた記事。
個人的な備忘録の側面が強い。

実用性の高いコード例を重視しているため、純粋なコードスニペットではなく余分な処理が大量に混ざっている点に注意して欲しい。
しかしこちらの方が実際の使用状況を思い浮かべやすいと思う。

まあ、エラー処理はバッサリ省略してるんだけどな。

続きを読む →

SFINAE がトンチ臭え違和感をなんとか納得する

なんかズル臭いが、仕方ないといえば仕方ない。
コンセプトがいつまで経っても標準化されないものだから、本来至極まっとうなSFINAEという型推論機構を利用して、今可能な範囲でテンプレートの型制限を行おうとした結果が、このそびえ立つクソのようなテンプレートメタプログラミングの姿なのだ。

続きを読む →