variant icon indicating copy to clipboard operation
variant copied to clipboard

add noexcept on assignment operators, and a test check those

Open lightmare opened this issue 10 years ago • 2 comments

You can check how the test ran on master here: https://travis-ci.org/lightmare/variant/builds/106630852

With this patch Travis/AppVeyor will still fail, that's intended.

Except for Xcode6 having some issue with is_nothrow_move_constructible, all other builds on travis will have only 2 failed is_nothrow_destructible checks. Those will go away once ~variant() is declared noexcept (unconditionally), but I didn't wan't to touch that line so that it doesn't conflict with reverting previous commits or any other fix to the destructor issue.

AppVeyor has more than 2 failing is_nothrow_destructible, that might mean it's indeed broken on MSVC and so the checks will need to be skipped/removed.

Note: I removed private functions copy_assign and move_assign -- the names were misleading, they did destroy&construct, not assign -- and copied their bodies to respective operators.

lightmare avatar Feb 03 '16 02:02 lightmare

Note, that in C++11 and later destructors marked by noexcept implicitly (if destructors of all non static members and base classes are noexcept in its turn). There no need to mark them intentionally.

tomilov avatar Feb 03 '16 04:02 tomilov

Shall I rebase this on master? I sooo much hate merge conflicts :spaghetti:

lightmare avatar Feb 16 '16 22:02 lightmare