Skip to content

Commit 3ed29e8

Browse files
committed
[libc++] Simplify tuple_cat further
1 parent 33503d0 commit 3ed29e8

File tree

4 files changed

+10
-53
lines changed

4 files changed

+10
-53
lines changed

libcxx/include/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -782,7 +782,6 @@ set(files
782782
__tuple/sfinae_helpers.h
783783
__tuple/tuple_element.h
784784
__tuple/tuple_like.h
785-
__tuple/tuple_like_ext.h
786785
__tuple/tuple_like_no_subrange.h
787786
__tuple/tuple_size.h
788787
__tuple/tuple_types.h

libcxx/include/__tuple/tuple_like_ext.h

Lines changed: 0 additions & 41 deletions
This file was deleted.

libcxx/include/module.modulemap.in

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2115,7 +2115,6 @@ module std [system] {
21152115
module ignore { header "__tuple/ignore.h" }
21162116
module sfinae_helpers { header "__tuple/sfinae_helpers.h" }
21172117
module tuple_element { header "__tuple/tuple_element.h" }
2118-
module tuple_like_ext { header "__tuple/tuple_like_ext.h" }
21192118
module tuple_like_no_subrange { header "__tuple/tuple_like_no_subrange.h" }
21202119
module tuple_like { header "__tuple/tuple_like.h" }
21212120
module tuple_size { header "__tuple/tuple_size.h" }

libcxx/include/tuple

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1273,15 +1273,19 @@ operator<=(const tuple<_Tp...>& __x, const tuple<_Up...>& __y) {
12731273
template <class... _Tuples>
12741274
struct __tuple_cat_return_impl;
12751275

1276-
template <class _Tuple>
1277-
struct __tuple_cat_return_impl<_Tuple> {
1278-
using type _LIBCPP_NODEBUG = _Tuple;
1276+
template <class... _Types>
1277+
struct __tuple_cat_return_impl<tuple<_Types...>> {
1278+
using type _LIBCPP_NODEBUG = tuple<_Types...>;
12791279
};
12801280

1281-
template <class... _Types0, template <class...> class _Tuple, class... _Types1, class... _Tuples>
1282-
struct __tuple_cat_return_impl<tuple<_Types0...>, _Tuple<_Types1...>, _Tuples...>
1281+
template <class... _Types0, class... _Types1, class... _Tuples>
1282+
struct __tuple_cat_return_impl<tuple<_Types0...>, tuple<_Types1...>, _Tuples...>
12831283
: __tuple_cat_return_impl<tuple<_Types0..., _Types1...>, _Tuples...> {};
12841284

1285+
template <class... _Types0, class _Tp, class _Up, class... _Tuples>
1286+
struct __tuple_cat_return_impl<tuple<_Types0...>, pair<_Tp, _Up>, _Tuples...>
1287+
: __tuple_cat_return_impl<tuple<_Types0..., _Tp, _Up>, _Tuples...> {};
1288+
12851289
template <class, class, class>
12861290
struct __tuple_cat_array;
12871291

@@ -1369,11 +1373,7 @@ __tuple_cat_select_element_wise(_TupleSrc&& __src, __index_sequence<_Indices...>
13691373
return _TupleDst(std::get<_Indices>(std::forward<_TupleSrc>(__src))...);
13701374
}
13711375

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>
1376+
template <class _Tuple0, class... _Tuples>
13771377
inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 __tuple_cat_return_t<_Tuple0, _Tuples...>
13781378
tuple_cat(_Tuple0&& __t0, _Tuples&&... __tpls) {
13791379
using _T0 _LIBCPP_NODEBUG = __libcpp_remove_reference_t<_Tuple0>;

0 commit comments

Comments
 (0)