http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50134
--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-09-30 08:04:38 UTC --- C++ doesn't have prototypes, it has declarations and definitions, so the different names makes sense. I'm not sure what "Do so even if the definition itself provides a prototype." means in the context of C++.