On 2020-08-07 16:44:16 -0700, Paul Eggert wrote:
> On 8/7/20 1:01 PM, Vincent Lefevre wrote:
> > The program
> > 
> > int main(void)
> > {
> >    return 0;
> > }
> > 
> > compiles fine with g++, even using "-std=c++17 -pedantic".
> 
> I expect the problem was with non-GNU C++ compilers, not with g++. However,
> I'm not the C++ guy so I'm the wrong person to ask about the details. You
> could write to Bruno Haible - I think he was the one preferring 'int main ()
> ...'.

https://en.wikipedia.org/wiki/Void_type
https://stackoverflow.com/questions/51032/is-there-a-difference-between-foovoid-and-foo-in-c-or-c
https://softwareengineering.stackexchange.com/questions/286490/what-is-the-difference-between-function-and-functionvoid/286494

all say that both constructs are equivalent in C++. Thus
"int main(void)" is valid in C++.

WP says that the form without "void" is preferred, but does not say
why. I suppose that this is only for C++ programs (i.e. which can't
be compiled with a C compiler), in which case both constructs are
necessarily equivalent, and the form without void is more "logic".

-- 
Vincent Lefèvre <vinc...@vinc17.net> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)

Reply via email to