As for this Visual Studio talk: Visual Studio's big flaw for me is the compiler. It's not very standards compliant
This has not been true for a very long time. MSVC6 and earlier were certainly problematic, but modern MSVC compilers are essentially compliant.
Here is a rundown of noncompliant aspects of the compiler; if you are off in the weeds where that actually matters, there is a compelling argument that you are, indeed, doing it wrong. With those exceptions, MSVC is compliant with C++98 and the ISO/IEC 14882:2003 amendments.
And don't kid yourself: GCC is noncompliant in a number of those areas, too. For instance, GCC doesn't properly honor the 'export' keyword either--as far as I know only Comeau does it correctly. As far as I am aware, GCC doesn't even pretend to care about ISO/IEC 14882:2003.
So, you were saying?
lacking a lot of C++0x's nifty features which GCC wields with glee XD
What? This is totally wrong.
Bam. Compare it with the GCC table,
here. GCC's support
clearly r0xx0rz j00r b0xx0rz and whatever other pseudocrap you want to spew! Oh,
man, I'mma just bust out that thread-local storage and show MSVC who's boss..when...oh. Wait. GCC doesn't support that, when MSVC does. (It's a little gimpy, but it wins on
actually having it.)
MSVC is arguably a
better, more compliant compiler (and a compiler that emits more tightly optimized code, and a far better dev environment with far better documentation) on Win32 than anything using GCC, and if you are writing good, standard code, portability will not be a serious concern.