https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120370
Bug ID: 120370 Summary: GCC fails to parse a trailing requires-clause that ends with an identifier when followed by a ctor-initializer Product: gcc Version: 15.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: rs2740 at gmail dot com Target Milestone: --- struct C { int j; static constexpr bool i = true; template<class T> C(T&&) requires i : j() {} }; <source>:5:23: error: found ':' in nested-name-specifier, expected '::' 5 | C(T&&) requires i : j() {} | ^ | :: <source>:5:21: error: 'i' is not a class, namespace, or enumeration 5 | C(T&&) requires i : j() {} | ^ <source>:5:27: error: 'C' declared as function returning a function 5 | C(T&&) requires i : j() {} | ^ Clang accepts.