
Thorsten Ottosen wrote:
Giovanni Piero Deretta skrev:
If I understand the documentation correctly, you can do boost::find<boost::return_found_end>(rng | filtered(pred)) to get exactly what you want. I find this very useful, but the syntax is a bit verbose.
Me too.
Yeah, I guess getting the specification right is more important first.
As for syntax, I guess we could maybe do something like
boost::find[_f,_e]( rng | filtered );
Then, other return ranges could be specified in this EDSL as
boost::find[_f+_1,e_]( rng | filtered ); boost::find[_f-_1,e_]( rng | filtered ); boost::find[_b,_f+_1]( rng | filtered ); boost::find[_b,_f]( rng | filtered ); boost::find[_b,_f+_1]( rng | filtered );
Interesting! That's really not half bad.
and perhaps even allow
boost::find[_b+_next(n),_f]( rng | filtered );
Whoa. That could make it too easy to create invalid ranges, but way to think outside the box! -- Eric Niebler BoostPro Computing http://www.boostpro.com