C++ Team Blog
The latest in C++, Visual Studio, VS Code, and vcpkg from the MSFT C++ team
Latest posts
C++ IDE Improvements in Visual Studio 2013
When we considered what features to add to the C++ IDE in Visual Studio 2013, we decided to focus on improving the C++ code editing experience. We've added a number of features that will help you write and format your code more quickly, and will give you more useful information in IntelliSense. You can configure the behavior of most of these new features using the Options dialog from the Tools menu. Code Formatting One of my biggest frustrations with the C++ editor in Visual Studio over the past several years has been the lack of formatting when I pasted code into the editor. Combined with the lack of many comm...
ATL and MFC changes and fixes in Visual Studio 2013
Hello, I’m Pat Brenner, a developer on the Visual C++ Libraries team. In this blog post I would like to share with you the changes that we’ve made in ATL and MFC for Visual Studio 2013.One of the major changes we made was to eliminate the ATL DLL altogether. All ATL code is now static, either in the header files or in the ATL static library. We also reduced the amount of code in the ATL static library substantially, so there are no longer multiple static libraries for debug/release mode or Unicode/ANSI character set. There is only one ATL static library that is common to a...
Optimizing C++ Code : Dead Code Elimination
If you have arrived in the middle of this blog series, you might want instead to begin at the beginning.This post examines the optimization called Dead-Code-Elimination, which I’ll abbreviate to DCE. It does what it says: discards any calculations whose results are not actually used by the program.Now, you will probably assert that your code calculates only results that are used, and never any results that are not used: only an idiot, after all, would gratuitously add useless code – calculating the first 1000 digits of pi, for example, whilst also doing something useful. So when woul...
C++ IDE Performance Improvement in Visual Studio 2013 Preview
My name is Li Shao. I am a Senior Software Design Engineer in Test on the VC++ team. In this blog, I would like to share the performance enhancements we've made in VS 2013 Preview to improve the C++ IDE and build system. Performance is a vital part of software quality. Over the last couple of releases we have made significant performance improvements in areas such as solution load, IntelliSense and code navigation. In VS 2013, we focused our performance effort on a few other key scenarios such as configuration switching, responsiveness and build throughput. We also improved the way we monitor real-world perfor...
New Features in C++/CX's <collection.h> for VS 2013 RTM
Introduction: Hi, I’m Brandon Jacobs, an intern on the Visual C++ Libraries team. For part of my internship, I was tasked with adding new features to Stephan T. Lavavej’s <collection.h>. It was certainly an honor to be one of the few to contribute to <collection.h>. You can find these changes in VS 2013 RTM (these changes are not in 2013 Preview). Summary: These are the changes I’ve made to <collection.h>:1. Added UnorderedMap and UnorderedMapView wrapper classes to <collection.h>.2. ...
C99 library support in Visual Studio 2013
Hello, I’m Pat Brenner, a developer on the Visual C++ Libraries team. In this blog post I want to share some information about the C99 support added to the C run-time library in Visual Studio 2013.To summarize, we added declarations and implementations for missing functions in the following headers: math.h, ctype.h, wctype.h, stdio.h, stdlib.h, and wchar.h. We also added the new headers complex.h, stdbool.h, fenv.h, and inttypes.h, and added the implementations for all the functions declared in them. In addition, we added the new C++ wrapper headers (ccomplex, cfenv, cinttypes, ctgmath) and updated a number...
Introducing ‘Vector Calling Convention’
Introduction In VS2013 (download here), we have introduced a new calling convention known as 'Vector Calling Convention' but before we go on and introduce the new calling convention let us take a look at the lay of the land today. There are multiple calling conventions that exist today, especially on x86 platform. The x64 platform has however been slightly blessed with only one convention. The following calling conventions are supported by the Visual C/C++ compiler (_cdecl, _clrcall, _stdcall, _fastcall and others) on x86. _cdecl is the default calling convention for C/C++ programs on x86. However x64 ju...
C++ REST SDK 1.1.0 is now available
C++ REST SDK 1.1.0 has been released on CodePlex. This version of the C++ REST SDK reintroduces the much anticipated the HTTP Listener library. Developers can now complete their REST story by creating their own server to respond to requests sent by client applications. For more information about this release and to view the sources, visit the project site at http://casablanca.codeplex.com. Project member, Kavya Kotacherry has published a blog about HTTP pipeline stages. Visit her post to learn more about some of the interesting features of the HTTP Client library. Did you know that the C++ R...
Intercepting HTTP Request/Response using C++ Rest HTTP Library
We released the C++ REST SDK (codename "Casablanca") as an open source project on CodePlex in Feb 2013. It enables writing modern, asynchronous C++ code that can connect with REST services. Using the C++ REST SDK, you can create an HTTP client that can connect to HTTP server, send requests and handle responses. The following links are pre-requisites to get familiar with the C++ Rest SDK. The C++ Rest HTTP Library offers an interesting feature which allows you to intercept your HTTP requests and responses before sending it out on the wire. This is useful for many scenarios and allows application develope...