From 75f5cbb17be9159186a26070ab66587b01646fd8 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Sun, 28 Aug 2011 21:05:48 +0000 Subject: [PATCH] move.h (swap(_Tp(&)[_Nm], _Tp(&)[_Nm])): Remove workaround for c++/49045. 2011-08-28 Paolo Carlini * include/bits/move.h (swap(_Tp(&)[_Nm], _Tp(&)[_Nm])): Remove workaround for c++/49045. * include/bits/algorithmfwd.h: Likewise. From-SVN: r178147 --- libstdc++-v3/ChangeLog | 6 ++++++ libstdc++-v3/include/bits/algorithmfwd.h | 4 ++-- libstdc++-v3/include/bits/move.h | 10 +--------- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index d0bd7d9..69e297d 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2011-08-28 Paolo Carlini + + * include/bits/move.h (swap(_Tp(&)[_Nm], _Tp(&)[_Nm])): Remove + workaround for c++/49045. + * include/bits/algorithmfwd.h: Likewise. + 2011-08-25 Tom Tromey * testsuite/libstdc++-prettyprinters/simple.cc: New file. diff --git a/libstdc++-v3/include/bits/algorithmfwd.h b/libstdc++-v3/include/bits/algorithmfwd.h index 7bb9880..cc0b98e 100644 --- a/libstdc++-v3/include/bits/algorithmfwd.h +++ b/libstdc++-v3/include/bits/algorithmfwd.h @@ -558,9 +558,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template void - swap(_Tp (&)[_Nm], _Tp (&)[_Nm]) + swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) #ifdef __GXX_EXPERIMENTAL_CXX0X__ - noexcept(__is_nothrow_swappable<_Tp>::value) + noexcept(noexcept(swap(*__a, *__b))) #endif ; diff --git a/libstdc++-v3/include/bits/move.h b/libstdc++-v3/include/bits/move.h index 0af8fda..f5beb22 100644 --- a/libstdc++-v3/include/bits/move.h +++ b/libstdc++-v3/include/bits/move.h @@ -152,21 +152,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __b = _GLIBCXX_MOVE(__tmp); } -#ifdef __GXX_EXPERIMENTAL_CXX0X__ - // To work around c++/49045. - template - struct __is_nothrow_swappable - { static const bool value = noexcept(swap(std::declval<_Tp&>(), - std::declval<_Tp&>())); }; -#endif - // _GLIBCXX_RESOLVE_LIB_DEFECTS // DR 809. std::swap should be overloaded for array types. template inline void swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) #ifdef __GXX_EXPERIMENTAL_CXX0X__ - noexcept(__is_nothrow_swappable<_Tp>::value) + noexcept(noexcept(swap(*__a, *__b))) #endif { for (size_t __n = 0; __n < _Nm; ++__n) -- 2.7.4