Is main() overloaded in C++?

Viewed 9006

2 valid versions of main() exist in C++:

int main()  // version 1
int main(int argc, char **argv)  // version 2

But both overloads cannot coexist at the same time. Why not? (Potential use case: while running the program from the terminal, if no arguments are passed the first version is called, otherwise the second version is.)

Does the compiler perform a special check to allow just one version per binary?

6 Answers
Related