> The old wording you're looking at was modified by > http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#1003 There it says All implementations shall allow both function of () returning int and ... as the type of main. That is rather unclear, unfortunately. The question is what "the type" means. As far as I am aware, 8.3.5 only *mentions* the "equivalence of types", but does not say where this is applicable. And in any case, for that to work, the option "std=c++14" had to be used, or? Anyway, just removing the "void" seems to me the clearest solution. And according to C++ Standard Core Language Defect Reports and Accepted Issues, Revision 96 Issues with DR, accepted, DRWP, and WP status are NOT part of the International Standard for C++. Don't know about "CD3", but it appears that is still not "in", or?