18
18
#include < __tuple/tuple_types.h>
19
19
#include < __type_traits/enable_if.h>
20
20
#include < __type_traits/integral_constant.h>
21
- #include < __type_traits/is_assignable.h>
22
21
#include < __type_traits/is_constructible.h>
23
- #include < __type_traits/is_convertible.h>
24
22
#include < __type_traits/is_same.h>
25
23
#include < __type_traits/remove_cvref.h>
26
24
#include < __type_traits/remove_reference.h>
@@ -49,25 +47,8 @@ struct __tuple_sfinae_base {
49
47
50
48
template <class _FromArgs , class _ToArgs >
51
49
using __constructible = decltype(__do_test<is_constructible>(_ToArgs{}, _FromArgs{}));
52
- template <class _FromArgs , class _ToArgs >
53
- using __convertible = decltype(__do_test<is_convertible>(_FromArgs{}, _ToArgs{}));
54
- template <class _FromArgs , class _ToArgs >
55
- using __assignable = decltype(__do_test<is_assignable>(_ToArgs{}, _FromArgs{}));
56
50
};
57
51
58
- // __tuple_convertible
59
-
60
- template <class _Tp ,
61
- class _Up ,
62
- bool = __tuple_like_ext<__libcpp_remove_reference_t <_Tp> >::value,
63
- bool = __tuple_like_ext<_Up>::value>
64
- struct __tuple_convertible : public false_type {};
65
-
66
- template <class _Tp , class _Up >
67
- struct __tuple_convertible <_Tp, _Up, true , true >
68
- : public __tuple_sfinae_base::__convertible< typename __make_tuple_types<_Tp>::type,
69
- typename __make_tuple_types<_Up>::type > {};
70
-
71
52
// __tuple_constructible
72
53
73
54
template <class _Tp ,
@@ -81,19 +62,6 @@ struct __tuple_constructible<_Tp, _Up, true, true>
81
62
: public __tuple_sfinae_base::__constructible< typename __make_tuple_types<_Tp>::type,
82
63
typename __make_tuple_types<_Up>::type > {};
83
64
84
- // __tuple_assignable
85
-
86
- template <class _Tp ,
87
- class _Up ,
88
- bool = __tuple_like_ext<__libcpp_remove_reference_t <_Tp> >::value,
89
- bool = __tuple_like_ext<_Up>::value>
90
- struct __tuple_assignable : public false_type {};
91
-
92
- template <class _Tp , class _Up >
93
- struct __tuple_assignable <_Tp, _Up, true , true >
94
- : public __tuple_sfinae_base::__assignable< typename __make_tuple_types<_Tp>::type,
95
- typename __make_tuple_types<_Up&>::type > {};
96
-
97
65
template <size_t _Ip, class ... _Tp>
98
66
struct _LIBCPP_TEMPLATE_VIS tuple_element<_Ip, tuple<_Tp...> > {
99
67
typedef _LIBCPP_NODEBUG typename tuple_element<_Ip, __tuple_types<_Tp...> >::type type;
0 commit comments