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
This commit is contained in:
Paolo Carlini 2011-08-28 21:05:48 +00:00 committed by Paolo Carlini
parent 892a371f3b
commit 75f5cbb17b
3 changed files with 9 additions and 11 deletions

View File

@ -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.

View File

@ -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
;

View File

@ -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)