Boost logo

Boost :

Subject: Re: [boost] variant2 never empty guarantees (was: Re: Outcome/expected/etc/etc/etc)
From: Gottlob Frege (gottlobfrege_at_[hidden])
Date: 2017-06-12 15:36:58


On Wed, Jun 7, 2017 at 10:28 AM, Peter Dimov via Boost
<boost_at_[hidden]> wrote:
> Gottlob Frege wrote:
>
>> Agreed. But I don't see much value in the never-empty guarantee if it
>> doesn't give you the strong guarantee.
>
>
> I'm not sure I understand this fully; could you please explain from what
> expressions, and under what conditions, you expect the strong guarantee?
>
> variant<X, Y> v1, v2;
> X x;
>
> v1= v2; // do you expect strong guarantee here?
> v1 = std::move(v2); // here?
> v1 = x; // here?
> v1 = std::move(x); // here?
> v1.emplace<X>(); // here?
>

How about "all of the above"?
At least when X and Y each offer the strong guarantee?
ie allow variant to be as strong as its components.
?

Tony


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