Quote:
Yup. Failing to return a specific value from a function of type int is bad, and in the case of main() it should be explicitly return EXIT_SUCCESS;
It is permissible for main() to omit the return statement; the behavior is as if return 0 had been specified.
The standard considers EXIT_SUCCESS relevant directly to exit() (and the value of EXIT_SUCCESS is not specified), where its semantics are the same as 0. Since the return statement in main has the effect of leaving the function and calling std::exit with the return value, 0 is just as acceptable a value.