Visual C++ in 2013 and Beyond – Q&A
Did you watch Charles Torre’s discussion with Ale Contenti, Tarek Madkour and Herb Sutter at the Visual Studio 2013 Virtual Launch last month? The team answered a number of questions from Charles and the community on topics ranging from refactoring to PEX. In case you missed the video (or missed some of the answers), the questions and answers are provided below.
Note that the questions and answers were often tweaked for clarity, correctness and completeness. This is not a transcript. If you have follow up questions, lob them our way in the comments section.
How easy is it to migrate C++ assets to Visual Studio 2013?
We care about C++ standards and library support, making it easier to bring your C++ code into Visual Studio 2013. The IDE also helps with an option to create a project file from existing code.
If you are already able to create a .pdb file, an available PDBProject plug-in can create a Visual Studio 2013 project for you. It takes information contained in the .pdb to create a C++ project. For more information, see Creating a C++ Project from a PDB file: PDB Project.
Will there be a modern UI framework for the Windows Desktop?
This is an important topic and is actively being discussed among different teams at Microsoft. We don’t have more to share at this moment apart from the fact that we deeply care about enabling great desktop application development. Our current desktop UI framework for C++, MFC, will continue to be supported and MFC will be in the next release of Visual Studio, but we have no plans to majorly revamp it.
What about refactoring?
No C++ refactoring in the VS2013 RTM release. We do recognize the need for a good solution that makes developers more productive and works on real projects. So we’re starting to actively prototype some solution to have a discussion with our customers about the level of accuracy, scalability, etc. A prototype add-in tool for Visual Studio 2013, the Visual C++ Refactoring extension, is available now in the extension gallery, .
Any updates on SG13?
SG13 is the special working group developing a C++ 2D graphics API proposal. It just got started and there is a small meeting next week to discuss options and scope.
Expect more updates next year. View the discussion here.
Is C++11 available for Windows CE?
The latest version of Windows CE shipped with complete support in Visual Studio 2012 (IDE, compilers, debugger, libs). It is more conformant, supporting lambdas, ranged-base for loops, scoped enumerations and more. For more information, check out Visual C++ in Visual Studio 2012.
Any additions for C++ unit testing?
How can I use C++11 with older code bases?
One approach is to modify existing code to use C++11 features like shared_ptr or range-based for loops. Another approach is to use C++11 only in new code, avoiding the risk of breaking existing code.
Your old code will still work and will likely both compile and run faster with the latest version of Visual Studio. This is a goal we have for each release.
Is MASM included?
Are there improvements to C++ AMP shared memory?
In Visual Studio 2013, we added support for “zero copy” scenarios. C++ AMP also got better debugger and profiler support so that you can examine operations being performed on the GPU. We added a bunch of features to enhance support for textures and side-by-side CPU/GPU debugging (mixed-mode debugging is available on Windows 8.1 for the WARP accelerator).
For more information, see What’s New for C++ AMP in Visual Studio 2013.
Is AMP cross platform?
Can I target Windows XP?
Are you considering other back ends like LLVM or Clang?
No plans at this time.
Will you support PeX and Moles? What about Pexforfun?
Visual Studio 2013 has strong static analysis (using /analyze) for native code.
When will you improve the project properties dialog?
It is resizable in Visual Studio 2013, but it definitely needs more improvement.
NuGet for C++?
Done! Read all about it here.
Will there be generic lambdas in the next CTP?
Keep an eye on VCBlog for an update by the end of the year.
This is the most requested feature in the C++14 standard and it is on the roadmap presented by Herb Sutter in his One C++ keynote at Going Native 2013 earlier this year.
Does Visual C++ use ASTs?
The VC++ compiler uses different technology internally. As we develop more C++11 features (e.g. constexpr), we’ve been significantly revamping the internal compiler technologies that we use, including adding ASTs. These ASTs are not exposed for 3rd party use at this time.