This adds the remainging noexcept causes required for this cause
to meet the spec as dicussed last year and documented here:
http://cplusplus.github.io/LWG/lwg-active.html#2899.

Signed-off-by: Nicholas Krause <xerofo...@gmail.com>
---
 libstdc++-v3/include/std/tuple | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/libstdc++-v3/include/std/tuple b/libstdc++-v3/include/std/tuple
index 56b97c25eed..d17512a1b7e 100644
--- a/libstdc++-v3/include/std/tuple
+++ b/libstdc++-v3/include/std/tuple
@@ -214,6 +214,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
                enable_if<sizeof...(_Tail) == sizeof...(_UTail)>::type>
         explicit
         constexpr _Tuple_impl(_UHead&& __head, _UTail&&... __tail)
+        noexcept(__and_<is_nothrow_move_constructible<_Head>,
+                     is_nothrow_move_constructible<_Inherited>>::value)
        : _Inherited(std::forward<_UTail>(__tail)...),
          _Base(std::forward<_UHead>(__head)) { }
 
@@ -237,6 +239,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
       template<typename _UHead, typename... _UTails>
         constexpr _Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in)
+        noexcept(__and_<is_nothrow_move_constructible<_Head>,
+                     is_nothrow_move_constructible<_Inherited>>::value)
        : _Inherited(std::move
                     (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))),
          _Base(std::forward<_UHead>
-- 
2.17.1

Reply via email to