とりあえず、oven::regularは移植完了。
C++03版も実装はしたのであとでコミット予定。
oven::regularは、コードが冗長になりがちなのが問題で、Boostに移植する際には関数バージョンとは別に、演算子バージョンも用意しようと考えています。どの演算子を採用するかは検討中ですが、イメージとしては、こんな感じです:
r |= filtered(_1 % 2 == 0) | transformed(f);
Rangeアダプタのために通常使用されるoperator|()に加え、regular用演算子を用意しようというアプローチです。この方法ではアダプタの適用順が問題になるので考え中。
operator|()と同じ優先順位の演算子があればよかったのですが、高いか低いかしかない。
http://www.cppreference.com/wiki/jp/operator_precedence
しかしこれは、がんばれば解決できるレベルの問題。