diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2011-08-28 21:05:48 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2011-08-28 21:05:48 +0000 |
commit | 75f5cbb17be9159186a26070ab66587b01646fd8 (patch) | |
tree | dfbd51eb529a091379834a478a1fcff04caf9e3a | |
parent | 892a371f3b8c8ce79f59540908a8660cfc07f880 (diff) | |
download | gcc-75f5cbb17be9159186a26070ab66587b01646fd8.tar.gz |
move.h (swap(_Tp(&)[_Nm], _Tp(&)[_Nm])): Remove workaround for c++/49045.
2011-08-28 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/move.h (swap(_Tp(&)[_Nm], _Tp(&)[_Nm])): Remove
workaround for c++/49045.
* include/bits/algorithmfwd.h: Likewise.
From-SVN: r178147
-rw-r--r-- | libstdc++-v3/ChangeLog | 6 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/algorithmfwd.h | 4 | ||||
-rw-r--r-- | 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 d0bd7d993d3..69e297de943 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2011-08-28 Paolo Carlini <paolo.carlini@oracle.com> + + * include/bits/move.h (swap(_Tp(&)[_Nm], _Tp(&)[_Nm])): Remove + workaround for c++/49045. + * include/bits/algorithmfwd.h: Likewise. + 2011-08-25 Tom Tromey <tromey@redhat.com> * testsuite/libstdc++-prettyprinters/simple.cc: New file. diff --git a/libstdc++-v3/include/bits/algorithmfwd.h b/libstdc++-v3/include/bits/algorithmfwd.h index 7bb9880ebeb..cc0b98ed7d2 100644 --- a/libstdc++-v3/include/bits/algorithmfwd.h +++ b/libstdc++-v3/include/bits/algorithmfwd.h @@ -558,9 +558,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename _Tp, size_t _Nm> 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 0af8fdac0b5..f5beb22bb8d 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<typename _Tp> - 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<typename _Tp, size_t _Nm> 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) |