Boost logo

Boost :

Subject: Re: [boost] Range begin/end and Fusion begin/end
From: Mathias Gaunard (mathias.gaunard_at_[hidden])
Date: 2010-03-19 07:05:37


Mathias Gaunard a écrit :
> In C++0x, begin and end are supposed to be found through ADL, and this
> might end up considering fusion::begin/fusion::end as possible overloads.
>
> Unfortunately, this breaks, as fusion::begin and fusion::end produce
> hard errors when passed something else than a fusion sequence.
>
> All in all, I find ADL very dangerous. Should it be advocated not to use
> the names "begin" and "end" for something else than ranges to avoid issues?
> I suppose that for Fusion, it could be possible to use SFINAE to mask
> the overloads if the arguments aren't fusion sequences.

Of course, keeping the names begin and end for fusion means we won't be
able to have a range that is at the same time a fusion sequence, even
though that could be somewhat useful.

Since this is not leading to a discussion of what to do about this issue
as I expected, I've filed a ticket here:
https://svn.boost.org/trac/boost/ticket/4028


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk