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?