|
Boost : |
Subject: Re: [boost] Range begin/end and Fusion begin/end
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2010-03-19 10:21:55
AMDG
Mathias Gaunard wrote:
> 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.
Hmm. I think it works just fine for boost::array, since fusion::begin
won't be found by ADL.
> 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
In Christ,
Steven Watanabe
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk