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.