// { dg-do compile } // { dg-options "-std=c++2a" } template concept Type = true; template concept Bottom = false; template concept Class = __is_class(T); template concept Number = true; template class T> concept Template = true; struct empty { }; Type x1 = 0; // { dg-error "expected 'auto'" } Type auto x2 = 0; Number x3 = 0; // { dg-error "does not constrain a type" } Template x4 = 0; // { dg-error "does not constrain a type" } Type const& x5 = 0; // { dg-error "expected 'auto'" } const Type& x6 = 0; // { dg-error "expected 'auto'" } Type auto const& x7 = 0; const Type auto& x8 = 0; Type const auto& x9 = 0; // { dg-error "expected 'auto'|two or more data types" } template // OK: T is a type parameter. void f1(T); template // { dg-error "does not constrain a type" } void f2(); template