// PR c++/106761 | |
template<class...> | |
struct __and_; | |
template<class, class> | |
struct is_convertible; | |
template<class... Ts> | |
struct _TupleConstraints { | |
template<class... Us> | |
using __constructible = __and_<is_convertible<Ts, Us>...>; | |
}; | |
template<class... Ts> | |
struct tuple { | |
template<class... Us> | |
using __constructible | |
= typename _TupleConstraints<Ts...>::template __constructible<Us...>; | |
}; | |
tuple<int, int> t; |