// P0846R0 // { dg-do compile } // { dg-options "-std=c++2a" } const unsigned long arr[10] = { 2 }; template struct S { int n; }; template int fn1 (S* s) { int i = 1; return s->n < arr[i + 1]; } template int fn2 (S s) { int i = 1; return s.n < arr[i + 1]; } template int fn3 (S* s) { int i = 1; return s->template n < 1; // { dg-error "parse error in template argument list" } } template int fn4 (S s) { int i = 1; return s.template n < 1; // { dg-error "parse error in template argument list" } }