This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 116a. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.
2024-12-19
[Accepted as a DR at the June, 2024 meeting.]
The following fragment,
int f() {};
is syntactically ambiguous. It could be either a function-definition followed by an empty-declaration, or it could be a simple-declaration whose init-declarator has the brace-or-equal-initializer {}. The same is true of a variable declaration
int a {};
since function-definition simply uses the term declarator in its production.
Additional notes (May, 2024)
Issue 2876 introduced a framework to distinguish the parsing. Its resolution was extended to also resolve this issue.