@@ -234,7 +234,6 @@ template <class... Types>
234234# include < __tuple/ignore.h>
235235# include < __tuple/tuple_element.h>
236236# include < __tuple/tuple_like.h>
237- # include < __tuple/tuple_like_ext.h>
238237# include < __tuple/tuple_size.h>
239238# include < __tuple/tuple_types.h>
240239# include < __type_traits/common_reference.h>
@@ -1273,15 +1272,19 @@ operator<=(const tuple<_Tp...>& __x, const tuple<_Up...>& __y) {
12731272template <class ... _Tuples>
12741273struct __tuple_cat_return_impl ;
12751274
1276- template <class _Tuple >
1277- struct __tuple_cat_return_impl <_Tuple > {
1278- using type _LIBCPP_NODEBUG = _Tuple ;
1275+ template <class ... _Types >
1276+ struct __tuple_cat_return_impl <tuple<_Types...> > {
1277+ using type _LIBCPP_NODEBUG = tuple<_Types...> ;
12791278};
12801279
1281- template <class ... _Types0, template < class ...> class _Tuple , class ... _Types1, class ... _Tuples>
1282- struct __tuple_cat_return_impl <tuple<_Types0...>, _Tuple <_Types1...>, _Tuples...>
1280+ template <class ... _Types0, class ... _Types1, class ... _Tuples>
1281+ struct __tuple_cat_return_impl <tuple<_Types0...>, tuple <_Types1...>, _Tuples...>
12831282 : __tuple_cat_return_impl<tuple<_Types0..., _Types1...>, _Tuples...> {};
12841283
1284+ template <class ... _Types0, class _Tp , class _Up , class ... _Tuples>
1285+ struct __tuple_cat_return_impl <tuple<_Types0...>, pair<_Tp, _Up>, _Tuples...>
1286+ : __tuple_cat_return_impl<tuple<_Types0..., _Tp, _Up>, _Tuples...> {};
1287+
12851288template <class , class , class >
12861289struct __tuple_cat_array ;
12871290
@@ -1369,11 +1372,7 @@ __tuple_cat_select_element_wise(_TupleSrc&& __src, __index_sequence<_Indices...>
13691372 return _TupleDst (std::get<_Indices>(std::forward<_TupleSrc>(__src))...);
13701373}
13711374
1372- template <class _Tuple0 ,
1373- class ... _Tuples,
1374- __enable_if_t <
1375- _And<__tuple_like_ext<__remove_cvref_t <_Tuple0>>, __tuple_like_ext<__remove_cvref_t <_Tuples>>...>::value,
1376- int > = 0 >
1375+ template <class _Tuple0 , class ... _Tuples>
13771376inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 __tuple_cat_return_t <_Tuple0, _Tuples...>
13781377tuple_cat (_Tuple0&& __t0, _Tuples&&... __tpls) {
13791378 using _T0 _LIBCPP_NODEBUG = __libcpp_remove_reference_t <_Tuple0>;
0 commit comments