Visual C++ 10
I thought I would inform those who are not aware. Microsoft has released a CTP of Visual Studio 10, among which contains Visual C++ 10.
What is so special about this, is that it is one of the first that contains a working implementation of some of the C++0x features. Namely they are lambda expressions, rvalue references, static_assert and the auto keyword. And more are coming.
It also contains some parallel implementations of some STL functions, such as for_each. The parallel implementations are designed for multi-core systems.
They have also improved MFC to support new APIs in Vista & Win7 (as well as the modern interface).
Another new thing for Visual Studio 10, or as I have heard is that they have improved debugging speed, among other things.
All in all, it is gearing up to be one very nice release!
The CTP is available for public download at http://www.microsoft.com/downloads/d...ng=en#filelist
When I read that, I was thinking "What happened to VC++ 9?"
Then when I clicked on the link I saw it was VC++ 2010, not version 10. :)
2002 was 7.0, 2003 7.1, 2005 8.0, 2008 9.0, and with 2010 they finally caught up - it's indeed 10.0 :)
This is not just something I invented. That's their actual internal versioning scheme. There are many places where it occurs.
Static assertions are simple and useful - a very obvious first choice to implement.
Rvalue references are less simple, but they're so extremely useful that they're a must-have; also, they're the most widely implemented C++0x feature, with at least 3 compilers already supporting them that I know of (CodeWarrior, GCC and Comeau). With VC++ also supporting them, they're a feature that can be relied on. You will actually be able to use it in real-world code pretty soon, which is very important.
The auto keyword is also useful and not too hard. Another good choice.
The lambdas surprise me. I had assumed that they were tricky to implement. Thinking about it, they're not - they're pretty much syntactic sugar with a well-defined transformation to existing code. So I probably shouldn't be surprised.
GCC apparently found variadic templates easy to implement. We might see them before the final release of VC++ 2010. This would be great, since they work so well with rvalue references to bring perfect forwarding.
A peculiarity discovered by some Boost people is that there is apparently no way to switch the new features - particularly the changed meaning of the auto keyword - off.
But then again, who uses the "auto" keyword nowadays (in the older standards)?
So it should not break any legacy code.
Also found out that the CTP is packaged inside a virtual machine (of course... Microsooooooooooooooooooft!), which is why it is so big.
Which kindof defeats the entire purpose of downloading, IMHO. I wonder when they'll release the beta...
Oh yeah, for some reason I thought we were currently at 8.0. It's Friday, so what do you expect. :p
Originally Posted by CornedBee
In a virtual machine? why? Thinking about porting it to Linux?
A virtual machine has many advantages for MS. Most importantly, they know the exact setup in which the program runs, which helps greatly in debugging. There is no interference from 3rd party programs with their hook DLLs, synthesized window messages, and other stupid things programs do that mess with the stability of others.
Sure, in the beta phase they'll have to consider those, too. But in this early phase, removing those things from the equation makes it much easier.
Ah I see.
I was thinking along the lines of JVM kind of virtual machine... :).
...And making it impossible to use. It took at least 20 minutes to get into the desktop after running the VM. Who says what that will do to Visual Studio when running inside the machine?
I gave up and deleted the crap. No more VMs for me.
I use virtual machines very often to test my programs under Windows (I develop on Linux), and they run about as fast as they do natively. The VM boots about as fast as a native Windows boot, too.
What kind of computer do you have? My Core 2 Duo at 3.3ghz + 4GB RAM works fine :).
Athlon 64 X2 3800+ (2 GHz) + 3 GB RAM.