TR1
Visual C++ 2008 Feature Pack is now available
The Visual C++ 2008 Feature Pack I talked about before is finished and ready for download. This includes a bulk of the TR1 updates (sadly, still no cstdint) and some major MFC updates.
Digging into TR1
Channel 9 has an interview with Stephan T. Lavavej of the Visual C++ team showing off some of the new features in TR1, the new draft standard library additions for C++0x. While the interview will probably have nothing new for competent C++ developers, Stephan does go into good detail explaining the unique strengths of C++ that newbies may not immediately see.
If you’ve thought of C++ but have been scared by its complexity, or have been tempted by newer garbage collected languages like C#, this will probably be a good eye opener.
Visual C++ 2008 Feature Pack beta
It’s here! A beta of the promised TR1 library update has been put up for download.
Included in the pack is an update to MFC that adds a number of Office-style controls. Wish they’d put these out as plain Win32 controls, because I’ve got no intention of using MFC!
Visual Studio 2008 released, TR1 support coming
Anyone following Visual Studio 2008 will know that although it offers a plethora of new features for the managed world, there was little focus on the unmanaged side of things. Now that it is finally out the door, I guess it’s a good time to look at what few new features are there for us unmanaged C++ coders.
- Improved standards conformance with support for friend templates, an uncommon but powerful C++ feature.
- Intrinsic support for SSSE3, SSE4.x, and SSE4a. These are modern vector instructions (SSE4a literally just came out with AMD’s Phenom processors!) that anyone interested in writing high‐performance code will want to be familiar with.
- Intrinsic support for the CMPXCHG16B instruction. This instruction is essential when writing many lock-free algorithms for the x64 platform. I’ve been lobbying to have it added for a long time, so I’m especially happy to finally see it. Unfortunately, the generated code in Beta 2 was very sub‐optimal (considering the instruction is typically used in very tight loops) so I may end up using assembly anyway! I’m anxious to see if it is improved in RTM.
- Improved optimizer, with support for inlining transcendental functions and scheduling for the latest CPUs.
- Linker options updated for Vista – ability to specify UAC and address space randomization properties. For some reason, still no support for DPI independence so we’ll end up writing manifests anyway.
- We can finally use those quad‐core CPUs that are coming out to reduce our compile times with Multi‐threaded compiling.
Not much, huh? That’s because Microsoft was running under the assumption that people would flock to C# and only use unmanaged C++ to maintain "legacy" code. Perhaps the best news so far, they’ve finally realized their mistake. Although they didn’t have time to put things into VC++ 2008, they have re‐committed to unmanaged code for the next version and in the meantime made a small separate announcement that they will be bringing VC++ 2008 users a mostly complete TR1 implementation update in early January.