Consider yourself corrected. As iMalc said, void main() has never been valid C nor C++. It wasn't valid before those languages were standardised, and the standards have not made it valid.
Even the early versions of C (eg K&R C, which predated standard C by well over a decade) required int main(). The 1989 C standard, the C++ standard (which was required to be backward compatible to the 1989 C standard), and the 1999 C standard all required that any compliant compiler must support two forms of main(): "int main(void)" and "int main(int argc, char *argv[])" or functional equivalents. The C and C++ standards say nothing about what happens to the return value (eg being returned to an operating system): the only statement made is that "return value;' from main() has the same effect as calling "exit(value);".