If you guys follow Jason Zander’s (Visual Studio corporate Vice President) blog, you learned two days ago that the Visual Studio 2010 Service Pack 1 whose Beta had been released last December achieved final release stage. Today is generally available (last Tuesday was only for MSDN subscribers).
You can get it from here.
Let’s summarize the list of C++ new features and fixes that are included in this release. You’ll find an expanded description beyond C++ in this Microsoft Support article.
New C++ Features
MFC-based GPU-accelerated graphics and animations
Visual Studio 2010 SP1 enables the following two technologies for MFC:
- Direct2D, a hardware-accelerated, immediate-mode, 2-D graphics API that provides high performance and high-quality rendering for 2-D geometry, bitmaps, and text. For more information, visit the following Microsoft website: Direct2D.
- Windows Animation Manager, which enables rich animation of user interface elements. For more information, visit the following Microsoft website: Windows Animation Manager.
You can take advantage of these two technologies without breaking the MFC programming model. Additionally, you can find demos in the following directory:
[drive]:Program FilesMicrosoft Visual Studio 10.0Samples1033VC2010SP1Samples.zip
For more information about the technology improvements in Visual Studio 2010 SP1, visit the following website: MFC Additions for Visual Studio 2010 SP1.
New AMD and Intel instruction set support
Visual Studio 2010 SP1 adds intrinsic functions or intrinsics to enable the extensions on the AMD and Intel new microprocessors (being released this year). The intrinsic functions allow for highly efficient computing without the overhead of a function call. For more information about the intrinsic function, visit the following website: Compiler Intrinsics.
For more information about the extensions, visit the following third-party websites:
List of C++ Specific Issues that Are Fixed
Some link to the Connect bug, some don’t when the issue was found internally.
- Visual Studio 2010 crashes in a C/C++ project when hiding or showing all files of solution.
- Class member auto-completion forces wrong member (case-sensitive).
- Go to Declaration is slow in some cases.
- The C++ Editor may crash when you insert comments.
- A crash occurs while declaring C++ enumuneration.
- Issues occurred in native IntelliSense, such as with indexes and reporting.
- The NavigateTo method in C++ occasionally becomes unresponsive.
- Performance and stability improvements
- More efficient memory management
- Other IDE improvements to prevent user interface (UI) freezes and crashes
- Performance improvement for the F12 (Goto Definition) function key on large projects.
- C++ compiler generates incorrect movups instructions instead of movss instructions.
- There is a specific problem with the /Og option in the 64-bit version of Visual Studio 2010 Beta 2 compiler.
- SSE2 instructions are generated when the /arch:SSE option is specified.
- There are specific problems in the x64 version of the C++ compiler (optimizer).
- Destructor calls are missing when optimization is enabled.
- The compiler crashes with the “decltype(*this)” type specifier.
- Optimizations and fixes in several code generation areas
- Managed Incremental Build parity with Visual Studio 2008. For more information, click the following article number to view the article in the Microsoft Knowledge Base: 982721 The Enable Managed Incremental Build property does not exist when you open the Project Properties pages for a Visual C++ 2010 project.
Standard C++ Library
- The “vector::erase” constraint returns an incompatible iterator in the debug build.
- The behavior of the “tr1:regex” constraint differs in Visual Studio 2008 and in Visual Studio 2010 when some regular expressions are used.
- When you use the “std::vector<std::string>” statement, a memory leak occurs when you run your program.
C Runtime (CRT)
- MSPDB100.dll is dynamically loaded, but the DLL does not specify a fully qualified path in the CRT.
- When the the WEOF constant is passed to the “swprintf_s” function, the buffer does not receive a NULL termination.
Microsoft Foundation Classes (MFC) and Active Template Library (ATL)
- In the CDatabase/Crecordset MFC, the “DoFieldExchange” variable does not work correctly in Visual Studio 2010.
- Security, performance and other improvements in ATL/MFC.
- Mixed call stacks are broken when you debug C++ code.
- When you try to inspect local variables while you are debugging in Visual Studio 2010, you receive a “CXX0017 “Symbol not found” error message.
- The Watch window displays incorrect values.
For a complete list of new features and fixes, please visit this article.
ATTENTION: if you are to install Visual Studio 2010 SP1 in machines containing the stand-alone Microsoft Windows SDK for Windows 7 and .NET Framework 4, read this first.