boost::irangeのstepはBoost.Parameterを使った方がカッコイイかもしんない。 for (int i : boost::irange(0, n, step = 3)) {} |
と書いたら意外に好評だったので、boost::irangeの拡張を書きました。
boost::irangeの内部実装に手を入れないといけないので、Boostの実装を持ってきて書き換えた新たな実装を用意しました。そのうちBoostに提案します。
#include <iostream> #include <boost/range/irange_ex.hpp> #include <boost/foreach.hpp> #define foreach BOOST_FOREACH int main() { foreach(int i, boost::irange(0, 10, _step = 3)) { std::cout << i << std::endl; } }
0 3 6
これの実装はあとでgithubに置いておきます。