// P0892R2 // { dg-do compile } // { dg-options "-std=c++2a" } template struct A { template explicit(N + M) operator T(); }; template struct B { template explicit(N * M) operator T(); }; void bar () { A a; int i = a; A<0> a0; int i0 = a0; A<1> a1; int i1 = a1; // { dg-error "cannot convert" } B b; int j = b; // { dg-error "cannot convert" } B<0> b0; int j0 = b0; B<1> b1; int j1 = b1; // { dg-error "cannot convert" } }