
on Thu Jul 23 2009, Thorsten Ottosen <thorsten.ottosen-AT-dezide.com> wrote:
David Abrahams skrev:
Hi Neil,
I'm sure someone already spoke to you about this, but just in case: Andrei Alexandrescu gave a very interesting presentation at BoostCon that was based on a "ranges only" approach that should eliminate issues like this one:
2: return type specification for find() etc =========================================== There where no major objection to the mechanism, but some found the syntax ugly. I believe the suggested syntax (e.g.)
boost::find[_f,_e]( range, x )
boost::find[_f+1,_e]( range, x )
He says he's implemented a superset of the STL algorithms with it so we know the expressive power is fairly complete.
If I remember correctly, he claims that his return of find() is the "correct" one. I think that is plain wrong, as the syntax above shows that there are many useful return ranges, perhaps with an obvious default.
Regardless, there could still be a single correct answer from the standpoint of aesthetics, purity, and orthogonality. If drop_front(find(range, x)) does the same thing as find[_f+1,_e]( range, x ) then you don't need the complicated meta-goop in there.
So the above is not an "issue" IMO, but a usable feature.
Whether or not it's a feature and/or usable isn't relevant to the issue I'm raising. -- Dave Abrahams BoostPro Computing http://www.boostpro.com