summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2011-08-28 21:05:48 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2011-08-28 21:05:48 +0000
commit75f5cbb17be9159186a26070ab66587b01646fd8 (patch)
treedfbd51eb529a091379834a478a1fcff04caf9e3a
parent892a371f3b8c8ce79f59540908a8660cfc07f880 (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--libstdc++-v3/include/bits/algorithmfwd.h4
-rw-r--r--libstdc++-v3/include/bits/move.h10
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)