|
Boost : |
Subject: Re: [boost] [variant] match()
From: Peter Dimov (lists_at_[hidden])
Date: 2015-01-09 13:16:15
Eelis wrote:
> Really, variant<> should have been index-based all along, so that you can
> just do get<0> and get<1> on a variant<T, T> (or a variant<A, B> where A
> might be B) without losing information.
Adding get<I> to variant is trivial - it already stores the index and
exposes it in which(). But you can't store anything into variant<T,T>
because constructors and assignment dispatch by type.
We could in principle add something like
variant<T,T> v( index<0>, t );
and
v.assign( index<0>, t );
or
variant<T,T> v( _1, t );
v.assign( _1, t );
but
v = t;
is never going to work. The best we could do is
v = { _1, t };
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk