Skip to content

Commit 6d663cd

Browse files
authored
[libc++] Simplify tuple_cat further (llvm#163741)
1 parent b4dbb1c commit 6d663cd

File tree

4 files changed

+10
-54
lines changed

4 files changed

+10
-54
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 & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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) {
12731272
template <class... _Tuples>
12741273
struct __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+
12851288
template <class, class, class>
12861289
struct __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>
13771376
inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 __tuple_cat_return_t<_Tuple0, _Tuples...>
13781377
tuple_cat(_Tuple0&& __t0, _Tuples&&... __tpls) {
13791378
using _T0 _LIBCPP_NODEBUG = __libcpp_remove_reference_t<_Tuple0>;

0 commit comments

Comments
 (0)