https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64679
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords|diagnostic | Last reconfirmed|2017-09-28 00:00:00 |2019-8-6 --- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- Another example that cannot be a function declaration: struct F { F(int) {} F operator()(int) const { return *this; } }; int main() { int i = 0; F(i)(0)(0); } vex.cc: In function 'int main()': vex.cc:11:5: error: conflicting declaration 'F i' 11 | F(i)(0)(0); | ^ vex.cc:10:7: note: previous declaration as 'int i' 10 | int i = 0; | ^ vex.cc:10:7: warning: unused variable 'i' [-Wunused-variable] Clang, EDG and MSVC all compile this.