diff options
Diffstat (limited to 'libstdc++-v3/include/std')
-rw-r--r-- | libstdc++-v3/include/std/tuple | 24 | ||||
-rw-r--r-- | libstdc++-v3/include/std/typeindex | 16 |
2 files changed, 18 insertions, 22 deletions
diff --git a/libstdc++-v3/include/std/tuple b/libstdc++-v3/include/std/tuple index dc9330d..fee94e2 100644 --- a/libstdc++-v3/include/std/tuple +++ b/libstdc++-v3/include/std/tuple @@ -169,6 +169,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION constexpr _Tuple_impl(const _Tuple_impl&) = default; _Tuple_impl(_Tuple_impl&& __in) + noexcept(std::is_nothrow_move_constructible<_Head>::value + && std::is_nothrow_move_constructible<_Inherited>::value) : _Inherited(std::move(__in._M_tail())), _Base(std::forward<_Head>(__in._M_head())) { } @@ -191,8 +193,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION _Tuple_impl& operator=(_Tuple_impl&& __in) - noexcept(is_nothrow_move_assignable<_Head>::value - && is_nothrow_move_assignable<_Inherited>::value) + noexcept(std::is_nothrow_move_assignable<_Head>::value + && std::is_nothrow_move_assignable<_Inherited>::value) { _M_head() = std::forward<_Head>(__in._M_head()); _M_tail() = std::move(__in._M_tail()); @@ -252,9 +254,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION : _Inherited(std::forward<_UElements>(__elements)...) { } constexpr tuple(const tuple&) = default; - - tuple(tuple&& __in) - : _Inherited(static_cast<_Inherited&&>(__in)) { } + tuple(tuple&&) = default; template<typename... _UElements, typename = typename std::enable_if<sizeof...(_UElements) @@ -278,7 +278,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION tuple& operator=(tuple&& __in) - noexcept(is_nothrow_move_assignable<_Inherited>::value) + noexcept(std::is_nothrow_move_assignable<_Inherited>::value) { static_cast<_Inherited&>(*this) = std::move(__in); return *this; @@ -337,9 +337,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION : _Inherited(std::forward<_U1>(__a1), std::forward<_U2>(__a2)) { } constexpr tuple(const tuple&) = default; - - tuple(tuple&& __in) - : _Inherited(static_cast<_Inherited&&>(__in)) { } + tuple(tuple&&) = default; template<typename _U1, typename _U2> tuple(const tuple<_U1, _U2>& __in) @@ -367,7 +365,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION tuple& operator=(tuple&& __in) - noexcept(is_nothrow_move_assignable<_Inherited>::value) + noexcept(std::is_nothrow_move_assignable<_Inherited>::value) { static_cast<_Inherited&>(*this) = std::move(__in); return *this; @@ -434,9 +432,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION : _Inherited(std::forward<_U1>(__a1)) { } constexpr tuple(const tuple&) = default; - - tuple(tuple&& __in) - : _Inherited(static_cast<_Inherited&&>(__in)) { } + tuple(tuple&&) = default; template<typename _U1> tuple(const tuple<_U1>& __in) @@ -455,7 +451,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION tuple& operator=(tuple&& __in) - noexcept(is_nothrow_move_assignable<_Inherited>::value) + noexcept(std::is_nothrow_move_assignable<_Inherited>::value) { static_cast<_Inherited&>(*this) = std::move(__in); return *this; diff --git a/libstdc++-v3/include/std/typeindex b/libstdc++-v3/include/std/typeindex index 79b3ead..a92c296 100644 --- a/libstdc++-v3/include/std/typeindex +++ b/libstdc++-v3/include/std/typeindex @@ -1,6 +1,6 @@ // C++0x typeindex -*- C++ -*- -// Copyright (C) 2010 Free Software Foundation, Inc. +// Copyright (C) 2010, 2011 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -48,31 +48,31 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION */ struct type_index { - type_index(const type_info& __rhs) + type_index(const type_info& __rhs) noexcept : _M_target(&__rhs) { } bool - operator==(const type_index& __rhs) const + operator==(const type_index& __rhs) const noexcept { return *_M_target == *__rhs._M_target; } bool - operator!=(const type_index& __rhs) const + operator!=(const type_index& __rhs) const noexcept { return *_M_target != *__rhs._M_target; } bool - operator<(const type_index& __rhs) const + operator<(const type_index& __rhs) const noexcept { return _M_target->before(*__rhs._M_target); } bool - operator<=(const type_index& __rhs) const + operator<=(const type_index& __rhs) const noexcept { return !__rhs._M_target->before(*_M_target); } bool - operator>(const type_index& __rhs) const + operator>(const type_index& __rhs) const noexcept { return __rhs._M_target->before(*_M_target); } bool - operator>=(const type_index& __rhs) const + operator>=(const type_index& __rhs) const noexcept { return !_M_target->before(*__rhs._M_target); } size_t |