1 // PR c++/106761
2
3 template<class...>
4 struct __and_;
5
6 template<class, class>
7 struct is_convertible;
8
9 template<class... Ts>
10 struct _TupleConstraints {
11 template<class... Us>
12 using __constructible = __and_<is_convertible<Ts, Us>...>;
13 };
14
15 template<class... Ts>
16 struct tuple {
17 template<class... Us>
18 using __constructible
19 = typename _TupleConstraints<Ts...>::template __constructible<Us...>;
20 };
21
22 tuple<int, int> t;