Visual Studio 2012 also supports new syntactic features for the C++11 standard. These include range-based iteration for loops, which lets you define an iterable -- say, an integer array -- and compose a for statement whose index is drawn from successive members of that iterable. Among other new features, C++11 also implements a standard thread class and supports atomic operations, which provide classes and template classes that give more expressive control over multithreaded access to objects.
In addition, Visual Studio 2012 supports C++ Accelerated Massive Parallelism (AMP), announced last year by Microsoft. C++ AMP is a programming model that exploits the data parallelism present in graphics processing units (GPUs) and provides data handling constructs, as well as math function libraries. Visual Studio 2012 not only recognizes the new constructs, but also includes a GPU debugger for working with C++ AMP applications.
Debugging C++ AMP applications is not the only graphics debugging feature in Visual Studio 2012. Perhaps one of the IDE's most interesting new capabilities is Pixel History. Used in debugging Direct3D applications, Pixel History lets you identify which piece of code is responsible for a specific pixel in your application's display and examine the events that affected the pixel over the application's lifetime. This is important if the rendered pixel is the result of a blending of two or more events that have modified it at different points in the past. You can step through the events and find the graphical primitive responsible for altering the pixel.