// { dg-do compile { target c++17 } } // { dg-options "-fconcepts" } // Check shorthand notation. template concept bool Type() { return true; } template concept bool Same() { return __is_same_as(T, U); } template T> struct S1 { }; template U> struct S2 { }; void f(Same q) { } void g(Type a, Same b) { } int main() { S1 s1; // { dg-error "constraint|invalid" } S2 s2; // { dg-error "constraint|invalid" } f('a'); // { dg-error "cannot" } g(0, 'a'); // { dg-error "cannot" } }