(I’m using Visual C++ 2008) I’ve always heard that main() is required to return an integer, but here I didn’t put in return 0; and and it compiled with 0 errors and 0 warnings! In the debug window it says the program has exited with code 0. If this function is named anything other than main(), the compiler complains saying ‘blah’ must return a value. Sticking a return; also causes the error to appear. But leaving it out completely, it compiles just fine.
#include <iostream> using namespace std; int main() { cout << 'Hey look I'm supposed to return an int but I'm not gonna!\n'; }
Could this be a bug in VC++?
attempting to find an online copy of the C++ standard so I could quote this passage I found a blog post that quotes all the right bits better than I could.