mirror of git://gcc.gnu.org/git/gcc.git
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:
parent
892a371f3b
commit
75f5cbb17b
|
@ -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>
|
2011-08-25 Tom Tromey <tromey@redhat.com>
|
||||||
|
|
||||||
* testsuite/libstdc++-prettyprinters/simple.cc: New file.
|
* testsuite/libstdc++-prettyprinters/simple.cc: New file.
|
||||||
|
|
|
@ -558,9 +558,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
|
|
||||||
template<typename _Tp, size_t _Nm>
|
template<typename _Tp, size_t _Nm>
|
||||||
void
|
void
|
||||||
swap(_Tp (&)[_Nm], _Tp (&)[_Nm])
|
swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm])
|
||||||
#ifdef __GXX_EXPERIMENTAL_CXX0X__
|
#ifdef __GXX_EXPERIMENTAL_CXX0X__
|
||||||
noexcept(__is_nothrow_swappable<_Tp>::value)
|
noexcept(noexcept(swap(*__a, *__b)))
|
||||||
#endif
|
#endif
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
|
@ -152,21 +152,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
__b = _GLIBCXX_MOVE(__tmp);
|
__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
|
// _GLIBCXX_RESOLVE_LIB_DEFECTS
|
||||||
// DR 809. std::swap should be overloaded for array types.
|
// DR 809. std::swap should be overloaded for array types.
|
||||||
template<typename _Tp, size_t _Nm>
|
template<typename _Tp, size_t _Nm>
|
||||||
inline void
|
inline void
|
||||||
swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm])
|
swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm])
|
||||||
#ifdef __GXX_EXPERIMENTAL_CXX0X__
|
#ifdef __GXX_EXPERIMENTAL_CXX0X__
|
||||||
noexcept(__is_nothrow_swappable<_Tp>::value)
|
noexcept(noexcept(swap(*__a, *__b)))
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
for (size_t __n = 0; __n < _Nm; ++__n)
|
for (size_t __n = 0; __n < _Nm; ++__n)
|
||||||
|
|
Loading…
Reference in New Issue