Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Visual Studio 2013 Remembers C++ Developers

Visual Studio 2013 Remembers C++ Developers


Visual Studio 2013 (VS2013) is shaping up to be an update with an impact larger than one may first assume given the proximity of its release to VS2012.  C++ developers will be beneficiaries of this growing update too, first with the IDE improvements, and second with the C++ specific improvements described today at Build 2013. 

Microsoft’s Tarek Madkour held a presentation titled, “Visual Studio 2013 for C++ Developers”, which looked at the forthcoming features of particular interest to C++ developers.  Makour began his talk with the reasons Microsoft feels developers use C++: performance, compatibility (ability to use older C++ code today), and portability.  To those three Madkour added Windows 8.1 tools and productivity as areas that he address in regards to VS2013.  One item of particluare note for developers using C++11, Madkour stated that the changes previewed in the November 2012 CTP will be formally part of VS2013.

Starting with Windows 8.1-focused tools, Markour highlighted an improved XAML designer:

  • New and updated templates
  • Improved XAML editor
  • Rulers and dynamic guides
  • New Windows 8.1 controls
  • Improved designer performance
  • Better in place style and template editing

The level of detail in WinRT call stacks can be toggled via “Just My Code” feature.  This way if the entire call stack is not needed, it can be collapsed so that developers can specifically focus on the code they are developing in their project and not the entire platform.

The automatic vectorization process introduced with VS2012 has been improved with the addition of the following features:

  • Statement level vectorization
  • Permutation of perfect loop nests
  • Range propagation optimizations
  • Support for more operations:  min/max, converts, shifts, byteswaps, averaging
  • Reductions into array elements
  • __restrict support for vector alias checking
  • Improvements to data dependence analysis
  • C++ pointer vectorization
  • gather/scatter optimizations

Using the new “__vector” calling convention on the appropriate methods improves performance by reducing instruction count, and minimizes stack allocation.  Madkour stated that by utilizing this convention, DirectX itself is running about 15% faster. 

Finally C++ AMP is scheduled to receive the following improvements:

  • Share memory support to eliminate/reduce copying of data between CPU and GPU
  • Enhanced texture support:  texture sampling, mipmap support, and staging texturs
  • C++AMP Debugging on Win7 and side-by-side CPU/GPU debugging
  • Faster C++ AMP runtime: improved copy performance, reduce launch overhead
  • better DirectX interop support
  • Improved C++ AMP runtime diagnostics
  • Improvements to array_view APIs

Future C++ announcements are scheduled for this Friday (in the area of compatibility), and InfoQ will cover this as it is released.

Rate this Article


Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Will it be free though?

    by Paulo Pinto,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    The question everyone that has been sucked into buying Visual Studio 2012, while waiting for an update that would integrate 2012 November CTP, is if Microsoft will have the nerve to ask money for an upgrade.

  • Re: Will it be free though?

    by Jeff Martin,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    The compiler improvements introduced with the November CTP will be formally part of VS2013. I am not aware of any additional new features (which is what further C++11 support would be considered) that will be made available for VS2012.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p