// P0846R0 // { dg-do compile } // { dg-options "-std=c++2a" } struct undeclared { }; // { dg-error "not a class template" } int main () { int foo (); // { dg-warning "empty parentheses" } int a, b = 10; a = foo<; // { dg-error "invalid template-argument-list|invalid" } a = foo < b; // { dg-error "invalid template-argument-list|invalid" } a = foo; // { dg-error "after template-argument-list|invalid" } a = foo(; // { dg-error "expected" } a = foo(1; // { dg-error "expected" } a = foo(1); // { dg-error "no matching" } }