The last draft of C++14 that I was able to find says, regarding main() [3.6.1]:
An implementation shall not predefine the main function. Thi
Is legal, the second and the latter aren't because of the following reasons:
The return type of the main function cannot be deduced since CWG 1669 was accepted and the standard will be reworded as:
An implementation shall not predefine the main function. This function shall not be overloaded. It shall have a declared return type of type int, but otherwise its type is implementation-defined.
This got its way into n4140. More on this: http://wg21.cmeerw.net/cwg/issue1669
The same as above