aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/include/std
diff options
context:
space:
mode:
Diffstat (limited to 'libstdc++-v3/include/std')
-rw-r--r--libstdc++-v3/include/std/tuple24
-rw-r--r--libstdc++-v3/include/std/typeindex16
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