You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/top/cpp-conformance-improvements-2017.md
+5-1Lines changed: 5 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,12 +30,16 @@ translation.priority.ht:
30
30
---
31
31
32
32
# C++ conformance improvements in [!INCLUDE[vs_dev15_md](../misc/includes/vs_dev15_md.md)]
33
-
In this release, we've updated the C++ compiler and standard library with enhanced support for C++11 and C++14 features, as well as preliminary support for certain features expected to be in the C++17 standard. With support for generalized constexpr and NSDMI for aggregates, the compiler is complete for features added in the C++14 Standard. Note that the compiler still lacks a few features from the C++11 and C++98 Standards.
34
33
35
34
## New language features
35
+
ith support for generalized constexpr and NSDMI for aggregates, the compiler is complete for features added in the C++14 Standard. Note that the compiler still lacks a few features from the C++11 and C++98 Standards.
36
36
37
37
### Standards version switches
38
38
New compiler switches enable you to opt-in to specific versions of the ISO C++ programming language in a project. The switches available in Visual Studio 2017 are /std:c++14 and /std:c++latest. For more information, see [Standards version switches in the compiler](https://blogs.msdn.microsoft.com/vcblog/2016/06/07/standards-version-switches-in-the-compiler). Most of the new draft standard features are guarded by the /std:c++latest switch.
39
+
The new /permissive- switch introduces the concept of a “less permissive mode" in the compiler. It is off
40
+
by default but will be on by default at some point in the future.
41
+
42
+
[!INCLUDE[vs_dev15_md](../misc/includes/vs_dev15_md.md)] RC allows using /sdl with /await. We removed /rtc limitation with Coroutines.
39
43
40
44
### C++11:
41
45
**Expression SFINAE (via more libraries)support in more libraries**
Copy file name to clipboardExpand all lines: docs/top/what-s-new-for-visual-cpp-in-visual-studio.md
+38-16Lines changed: 38 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -33,28 +33,26 @@ translation.priority.ht:
33
33
34
34
[!INCLUDE[vs_dev15_md](../misc/includes/vs_dev15_md.md)] brings many updates and fixes to the Visual C++ environment. We've fixed over 250 bugs and reported issues in the compiler and tools, many submitted by customers through [Microsoft Connect](https://connect.microsoft.com/VisualStudio"Microsoft Connect"). Thank you for reporting bugs! For more more information on what's new in all of Visual Studio, please visit [What's new in [!INCLUDE[vs_dev15_md](../misc/includes/vs_dev15_md.md)]](https://go.microsoft.com/fwlink/?linkid=834481).
35
35
36
-
The compiler and tools version number in [!INCLUDE[vs_dev15_md](../misc/includes/vs_dev15_md.md)] RC is 14.10.24629.
36
+
The compiler and tools version number in [!INCLUDE[vs_dev15_md](../misc/includes/vs_dev15_md.md)] RC is 14.10.24629.
37
37
38
-
## C++ Code Analysis
39
-
40
-
The C++ Core Checkers for enforcing the [C++ Core Guidelines](https://github.com/isocpp/CppCoreGuidelines) are now distributed with Visual Studio. Simply enable the checkers in the Code Analysis Extensions dialog in the project's property pages and the extensions will be included when you run code analysis.
In this release, we've updated the C++ compiler and standard library with enhanced support for C++11 and C++14 features, as well as preliminary support for certain features expected to be in the C++17 standard. With support for generalized constexpr and NSDMI for aggregates, the compiler is complete for features added in the C++14 Standard. Note that the compiler still lacks a few features from the C++11 and C++98 Standards.
47
-
[!INCLUDE[vs_dev15_md](../misc/includes/vs_dev15_md.md)] RC allows using /sdl with /await. We removed /rtc limitation with Coroutines. For more information, see [C++ Conformance Improvements in Visual Studio 2017](cpp-conformance-improvements-2017.md).
48
-
This release brings several improvements in optimization and code generation. Some notable improvements include:
41
+
In this release, we've updated the C++ compiler and standard library with enhanced support for C++11 and C++14 features, as well as preliminary support for certain features expected to be in the C++17 standard. For more information, see [C++ Conformance Improvements in Visual Studio 2017](cpp-conformance-improvements-2017.md).
42
+
43
+
This release brings several improvements in optimization, code generation, toolset versioning and diagnostics. Some notable improvements include:
49
44
50
45
- Improved code generation of loops: Support for automatic vectorization of division of constant integers, better identification of memset patterns.
51
46
- Improved code security: Improved emission of buffer overrun compiler diagnostics, and /guard:cf now guards switch statements that generate jump tables.
47
+
- Versioning: The value of the built-in preprocessor macro _MSC_VER is now being monotonically updated at every Visual C++ toolset update. For more information, see [Visual C++ Compiler Version](https://blogs.msdn.microsoft.com/vcblog/2016/10/05/visual-c-compiler-version/).
48
+
- New toolset layout: The compiler and related build tools have a new location and directory structure on your development machine. The new layout enables side-by-side installations of multiple versions of the compiler. For more information, see [Compiler Tools Layout in Visual Studio “15”](https://blogs.msdn.microsoft.com/vcblog/2016/10/07/compiler-tools-layout-in-visual-studio-15/).
49
+
- The /debug:fastlink option has been improved to provide 30% faster link times on large components than in VS 2015. See [Faster C++ build cycle in VS “15” with /Debug:fastlink](https://blogs.msdn.microsoft.com/vcblog/2016/10/05/faster-c-build-cycle-in-vs-15-with-debugfastlink/) and [Recommendations to speed C++ builds in Visual Studio](https://blogs.msdn.microsoft.com/vcblog/2016/10/26/recommendations-to-speed-c-builds-in-visual-studio/).
50
+
- Improved diagnostics: The output window now shows the column where an error occurs. For more information, see [C++ compiler diagnostics improvements in VS “15” Preview 5](https://blogs.msdn.microsoft.com/vcblog/2016/10/05/c-compiler-diagnostics-improvements-in-vs-15-rc/).
52
51
53
-
The /debug:fastlink option has been improved to provide 30% faster link times on large components than in VS 2015.
54
52
55
53
## C++ Libraries
56
54
57
-
### Standard Template Library:
55
+
### Standard Library improvements:
58
56
59
57
* Minor basic_string _ITERATOR_DEBUG_LEVEL != 0 diagnostics improvements. Tripping an IDL check in string machinery will now report the specific behavior that caused the trip. For example, instead of "string iterator not dereferencable" you'll get "cannot dereference string iterator because it is out of range (e.g. an end iterator)".
60
58
* Performance improvement: made basic_string::find(char) overloads only call traits::find once. Previously this was implemented as a general string search for a string of length 1.
@@ -75,6 +73,13 @@ The /debug:fastlink option has been improved to provide 30% faster link times on
75
73
* To increase compiler throughput, STL headers now avoid including declarations for unnecessary compiler intrinsics.
76
74
* Slightly improved compiler diagnostics for incorrect bind() calls.
77
75
76
+
### Open source library support
77
+
Vcpkg is an open-source command line tool that greatly simplifies the process of acquiring and building open source C++ static libs and DLLS in Visual Studio. For more information, see [Vcpkg updates: Static linking is now available](https://blogs.msdn.microsoft.com/vcblog/2016/11/01/vcpkg-updates-static-linking-is-now-available/).
78
+
79
+
### CPPRest SDK 2.9.0
80
+
The CPPRestSDK, a cross-platform web API for C++, has been updated to version 2.9.0. For more information, see [CppRestSDK 2.9.0 is available on GitHub](https://blogs.msdn.microsoft.com/vcblog/2016/10/21/cpprestsdk-2-9-0-is-available-on-github/).
81
+
82
+
78
83
## C++ IDE
79
84
80
85
* The new SQLite-based database engine is now being used by default. This will speed up database operations like Go To Definition and Find All References, and will significantly improve initial solution parse time. The setting has been moved to Tools > Options > Text Editor > C/C++ > Advanced (it was formerly under ...C/C++ > Experimental).
@@ -91,7 +96,7 @@ The /debug:fastlink option has been improved to provide 30% faster link times on
91
96
92
97

93
98
94
-
* Added a new experimental Predictive IntelliSense feature that provides contextually-aware filtering of what appears in the Member List.
99
+
* Added a new experimental Predictive IntelliSense feature that provides contextually-aware filtering of what appears in the Member List. See [C++ IntelliSense Improvements – Predictive IntelliSense & Filtering](https://blogs.msdn.microsoft.com/vcblog/2016/10/05/c-intellisense-improvements-predictive-intellisense-filtering/)
95
100
96
101
* The new Find All References UI includes information about whether we are reading from or writing to a variable in the results for C++ code.
97
102
@@ -101,12 +106,13 @@ The /debug:fastlink option has been improved to provide 30% faster link times on
101
106
102
107
*_**New in RC**_ We've enabled the new experimental feature for C++ projects ‘Faster project load’. The next time you open a C++ project it will load faster, and the time after that it will load really fast!
103
108
104
-
*_**New in RC**_ Improvements to the Open Folder experience.
105
-
Edit, build and debug your non-MSBuild C++ project by loading your sources through “Open Folder”.
106
-
Customize the experience through these json files:
109
+
*_**New in RC**_ Improvements to the Open Folder experience.
110
+
Visual Studio 2017 introduces the “Open Folder” feature, which enables you to code, build and debug in a folder containing source code without the need to create any solutions or projects. This makes it a lot simpler to get started with Visual Studio even if your project is not an MSBuild-based project. With “Open Folder” you get access to the powerful code understanding, editing, building and debugging capabilities that Visual Studio already provides for MSBuild projects.
111
+
You can customize the experience through these json files:
107
112
- CppProperties.json to customize the IntelliSense and browsing experience.
108
113
- Tasks.json to customize the build steps.
109
114
- Launch.json to customize the debugging experience.
115
+
- For more information, see [Bring your C++ codebase to Visual Studio with “Open Folder”](https://blogs.msdn.microsoft.com/vcblog/2016/10/05/bring-your-c-codebase-to-visual-studio-with-open-folder/).
110
116
111
117
*_**New in RC**_ C++ IntelliSense will work without the need to create a CppProperties.json file in the root folder. Along with this, we've added a new dropdown to allow users to easily switch between configurations provided by CMake and CppProperties.json files.
112
118
CMake support in Open Folder
@@ -116,6 +122,7 @@ Opening CMake projects with “Open Folder” will automatically configure the e
116
122
117
123

118
124
125
+
119
126
## C++ Installation Workloads
120
127
121
128
### Windows Desktop Development with C++:
@@ -130,12 +137,25 @@ Use the full power of C++ to build professional games powered by DirectX or Coco
130
137
### Mobile Development with C++ (Android and iOS):
131
138
You can now create and debug mobile apps using Visual Studio that can target Android and iOS.
132
139
133
-
### Universal Windows App:
140
+
### Universal Windows Apps:
134
141
C++ comes as an optional component for the Universal Windows App workload.
135
142
143
+
## New options for C++ on Universal Windows Platform
144
+
You now have new options for writing and packaging C++ applications for the Universal Windows Platform and the Windows Store:
145
+
You can use the Desktop App Converter to package your existing desktop application for deployment through the Windows Store. For more information, see [Using Visual C++ Runtime in Centennial project](https://blogs.msdn.microsoft.com/vcblog/2016/07/07/using-visual-c-runtime-in-centennial-project/) and [Bring your desktop app to the Universal Windows Platform (UWP) with the Desktop Bridge](https://msdn.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-root).
146
+
147
+
When writing new code, you can now use C++/WinRT, a standard C++ language projection for the Windows Runtime implemented solely in header files. It allows you to both author and consume Windows Runtime APIs using any standards-compliant C++ compiler. C++/WinRT is designed to provide C++ developers with first-class access to the modern Windows API. For more information, see [C++/WinRT Available on GitHub](https://moderncpp.com/).
148
+
149
+
136
150
## Clang/C2 Platform Toolset
137
151
The Clang/C2 toolset that ships with [!INCLUDE[vs_dev15_md](../misc/includes/vs_dev15_md.md)] RC now supports the /bigobj switch, which is crucial for building large projects. It also includes several important bug fixes, both in the front-end and the back-end of the compiler.
138
152
153
+
## C++ Code Analysis
154
+
155
+
The C++ Core Checkers for enforcing the [C++ Core Guidelines](https://github.com/isocpp/CppCoreGuidelines) are now distributed with Visual Studio. Simply enable the checkers in the Code Analysis Extensions dialog in the project's property pages and the extensions will be included when you run code analysis.
Visual Studio Graphics Diagnostics is a set of tools for recording and analyzing rendering and performance problems in Direct3D apps. Graphics Diagnostics features can be used with apps that are running locally on your Windows PC, in a Windows device emulator, or on a remote PC or device.
@@ -181,4 +201,6 @@ Visual Studio Graphics Diagnostics is a set of tools for recording and analyzing
181
201
Traces opened in GPU View via this link support synchronized zooming and panning in the timeline between VS and GPU View. A checkbox in VS is used to control whether synchronization is enabled or not.
0 commit comments