Boost logo

Boost :

Subject: Re: [boost] [variant] Please vote for behavior
From: Larry Evans (cppljevans_at_[hidden])
Date: 2013-01-28 22:18:29


On 01/28/13 16:12, Joel de Guzman wrote:
> On 1/29/13 5:58 AM, Gottlob Frege wrote:
>>>> How do I know if is it singular valued?
>>>> >>
>>> >
>>> >How do you know if an iterator is singular valued? You can't. Same
>>> here.
>>> >
>>> >
>> it == container.end()?
>>
>> Or am I confused?
>
> Nope. A singular valued iterator may not be compared. A singular
> valued iterator is not associated with any sequence. E.g default
> constructed iterator pointing to nowhere.
>
> Regards,
Why impose the same limitation on recursive_wrapper<T>. Just because
the current variant visitor requires the recursive_wrapper<T> to be
dereferenced doesn't mean that's the best practice. Why not, as
suggested previously, the visitor protocol allow:

  operator()(recursive_wrapper<T>const&)

and, for that matter have get<T> return a recursive_wrapper<T>&
or recursive_wrapper<T>const&.
The current variant doesn't do that for, I guess, convenience reasons;
however, as evidenced by the current *long* discussion, that convenience
is illusory, IMHO.

Such a proposal was made previously here:

http://lists.boost.org/Archives/boost/2013/01/200407.php

but, for some reason, didn't have any responses.


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