1 // P0892R2
2 // { dg-do compile }
3 // { dg-options "-std=c++2a" }
4 
5 #include <type_traits>
6 
7 template <typename T1, typename T2>
8 struct pair {
9     template <typename U1=T1, typename U2=T2,
10         std::enable_if_t<
11             std::is_constructible_v<T1, U1> &&
12             std::is_constructible_v<T2, U2>
13         , int> = 0>
14     explicit(!std::is_convertible_v<U1, T1> ||
15         !std::is_convertible_v<U2, T2>)
pairpair16     constexpr pair(U1&&, U2&&) { }
17 };
18 
19 void
foo()20 foo ()
21 {
22   pair<int, int> p{1, 2};
23   pair<int, int> p2 = {1, 2};
24 }
25