On 21/12/15 12:45 +0100, Daniel Krügler wrote:
2015-12-14 21:48 GMT+01:00 Daniel Krügler <daniel.krueg...@gmail.com>:
This is a reimplementation of __is_swappable and
__is_nothrow_swappable according to

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4511.html

and also adds a missing usage of __is_nothrow_swappable in the swap
overload for arrays. Strictly speaking the latter change differs from
the Standard specification which requires the expression
noexcept(swap(*a, *b)) to be used. On the other hand the Standard is
broken in this regard, as pointed out by

http://cplusplus.github.io/LWG/lwg-active.html#2554

The patch doesn't apply cleanly because it repeats some of the new
files either twice or three times (and also has some trailing
whitespace that shouldn't be there). After fixing the patch to only
create new files once it applies, but then I get some FAILs:

FAIL: 20_util/is_nothrow_swappable/value.cc (test for excess errors)
FAIL: 20_util/is_swappable/value.cc (test for excess errors)

I don't have time to analyse these today, so I'll wait until you're
able to do so. There's no great rush to fix this, as long as it's in
stage 3.

Reply via email to