https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65575
--- Comment #6 from Andrew Sutton <andrew.n.sutton at gmail dot com> --- The requires-clause comes before the = default (the = xxx) is considered part of the function definition. So: void f() requires true = default; As a side note, the production following the requires-clause is a logical-or-expression, so the '=' would not be interpreted as part of the constraint. But I don't think there are test cases for that. If you find a problem, please open a new issue.