| // P0892R2 | |
| // { dg-do compile } | |
| // { dg-options "-std=c++2a" } | |
| template<typename> struct A { | |
| template<typename T, int N = 0> | |
| explicit(N) operator T(); | |
| }; | |
| template<typename> struct B { | |
| template<typename T, int N = 1> | |
| explicit(N) operator T(); | |
| }; | |
| void | |
| bar () | |
| { | |
| A<int> a; | |
| int i = a; | |
| B<int> b; | |
| int j = b; // { dg-error "cannot convert" } | |
| } |