Boost logo

Boost :

Subject: Re: [boost] [variant] Please vote for behavior
From: Dave Abrahams (dave_at_[hidden])
Date: 2013-01-25 09:32:09


on Mon Jan 21 2013, Andrey Semashev <andrey.semashev-AT-gmail.com> wrote:

> On Monday 21 January 2013 19:06:32 Paul Smith wrote:
>> On Mon, Jan 21, 2013 at 6:12 PM, Joel de Guzman <djowel_at_[hidden]> wrote:
>> > This notion of a "valid" state
>> > is not clear to begin with anyway and many say it depends on the library
>> > to define what "valid" means. The case of NaN is a very clear example
>> > of a perfectly "valid" state similar to what we have here.
>>
>> I'm not sure what the NaN example supposed to convey? I think Nevin
>> brought it up to show that std::less<double> is not a weak partial
>> order. And guess what, it technically isn't! Try to put NaNs inside an
>> associative container and watch the world collapse. The big difference
>> is that no operation on non-NaNs that the container performs ever
>> produces a NaN out of thin air.
>
> Why would a container try to order moved-from elements?

Moved-from elements can be left there due to exceptions propagating out
of the code. That's a *new* state that wasn't allowed before
move-enabling, so if these moved-from elements have a state outside the
former invariants, it will break some code.

-- 
Dave Abrahams
BoostPro Computing                  Software Development        Training
http://www.boostpro.com             Clang/LLVM/EDG Compilers  C++  Boost

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