Boost logo

Boost :

From: Gennadiy Rozental (gennadiy.rozental_at_[hidden])
Date: 2003-04-09 05:04:26


"Eric Friedman" <ebf_at_[hidden]> wrote in message
news:b700f5$2at$1_at_main.gmane.org...
> Gennadiy Rozental wrote:
> [snip]
> > 2. Does not add support for const types and document how const variant
> could
> > be implemented in specific case. User willing to use variant in generic
> > solution will need to select 'variant'/'variant const' himself.
>
> I'm not sure what this documentation would look like. Perhaps you could
> detail a particular case where you see potential difficulty for the user
and
> we could work from there.
>
> Thanks,
> Eric

template<typename T1,typename T2>
struct my_struct
{
    boost::variant<T1,T2> m_value;
};

Here if user want to add support for const T1 and T2 he will need to do
something like:

template<typename T1,typename T2>
struct my_struct
{
    typedef boost::mpl::if_<boost::is_const<T1>::value,boost::variant<T1,T2>
const,boost::variant<T1,T2> >::type value_type;

    value_type m_value;
};

In all other cases one should be able to use variant<> const form of
expression to achieve const variant. These both points worth documenting
IMO.

Gennadiy.


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