Boost logo

Boost :

Subject: Re: [boost] [variant2] documentation request
From: Peter Dimov (lists_at_[hidden])
Date: 2019-03-03 15:17:16


degski wrote:
> On Sun, 3 Mar 2019 at 14:39, Peter Dimov via Boost <boost_at_[hidden]>
> wrote:
>
> > The behavior of emplace varies depending on a number of things:
> >
> > - whether all types are trivially destructible
> > - whether the variant is single- or double-buffered
> > - whether the type we're constructing is nothrow constructible from the
> > arguments
> > - whether all contained types are trivially move constructible and move
> > assignable
> > - and finally, whether, in the single buffered case, we have a monostate
> > type
>
> Do I need to remember all of the above to correctly use variant2 (and not
> run into trouble)?

No. The high-level behavior is the same - emplace<i>(args...) replaces the
currently held value with Ti(args...), and on exception, the variant holds
"a valid but unspecified value".


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