First impressions of Visual Studio 2005 from a C++ point of view

I’ve been using the latest Visual Studio 2005 beta on and off for the last couple of days. This is the first time I’ve bothered to try “Whidbey” and my initial impressions are very favourable; I’m just using it for unmanaged C++ at present. I haven’t really done a great deal with it yet but even though it’s installed on in a VMWare virtual machine it seems faster and generally less lardy than both VS.Net 2003 and 2002, which is a relief. I’ve mostly been converting projects and running some test builds. This is going reasonably well though it does seem to crash a little too often for my liking (looks like it falls over when it’s updating the intellisense stuff, just like VC6 used to…) As a die hard VC6 user I feel far more at home in VS 2005 than I ever did in 2002 or 2003, I’m not quite sure why yet…

So far the only ‘breaking change’ that looks like it might cause me some headaches is something that I should probably have dealt with a while ago anyway; wchar_t is now, correctly, a native type. This has been optional from VS.Net 2002 but up until now the default was that it was turned off and wchar_t ended up being a #define for unsigned short. Turning the option on creates binary incompatibility issues; C++ code build with wchar_t as a unsigned short has names that are mangled differently to code built with wchar_t as a real type. This means you can’t link code compiled one way with code compiled the other way without jumping through some hoops. I’ll write more once I’ve worked out exactly what the hoops are… It’s just another issue to add to the things you need to think about when you’re working on the borders of where your code integrates with other people’s.