Skip to content

Commit 2e4837d

Browse files
authored
Merge pull request MicrosoftDocs#178 from Microsoft/vs-rtw
Vs rtw to master
2 parents d4b97ed + a30da48 commit 2e4837d

File tree

4 files changed

+25
-16
lines changed

4 files changed

+25
-16
lines changed

docs/TOC.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
# [Visual C++ in Visual Studio 2017 RC](visual-cpp-in-visual-studio.md)
2-
# [What's New for Visual C++ in Visual Studio 2017 RC](what-s-new-for-visual-cpp-in-visual-studio.md)
1+
# [Visual C++ in Visual Studio 2017](visual-cpp-in-visual-studio.md)
2+
# [What's New for Visual C++ in Visual Studio 2017](what-s-new-for-visual-cpp-in-visual-studio.md)
33
# [C++ conformance improvements in Visual Studio 2017](cpp-conformance-improvements-2017.md)
44
## [Visual C++ Language Conformance](visual-cpp-language-conformance.md)
55
# [Supported Platforms (Visual C++)](supported-platforms-visual-cpp.md)

docs/ide/working-with-project-properties.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ In the IDE, all information that is needed to build a project is exposed as
7575
The **Any CPU** target platform value that you might see in **Configuration Manager** has no effect on native C++ projects; it is relevant for C++/CLI and other .NET project types. For more information, see [/CLRIMAGETYPE (Specify Type of CLR Image)](../build/reference/clrimagetype-specify-type-of-clr-image.md).
7676

7777
## Property pages
78-
As stated earlier, the Visual C++ project system is based on [MSBuild](/visualstudio/msbuild/msbuild-properties) and the values are stored in the XML project file, default .props and .targets files that (for Visual Studio 2015) are located in **\<drive>\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140** and in custom .props files that you might add. We highly recommend that you use NOT edit those files manually, and instead use the property pages in the IDE to modify all properties, especially those that participate in inheritance, unless you have a very good understanding of MSBuild.
78+
As stated earlier, the Visual C++ project system is based on [MSBuild](/visualstudio/msbuild/msbuild-properties) and the values are stored in the XML project file, default .props and .targets files. For Visual Studio 2015, these files are located in **\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140**. For Visual Studio 2017, these files are located in **\\Program Files (x86)\\Microsoft Visual Studio\\2017\\_edition_\\Common7\\IDE\\VC\\VCTargets**
79+
, where _edition_ is the Visual Studio edition installed. Properties are also stored in any custom .props files that you might add to your own project. We highly recommend that you NOT edit those files manually, and instead use the property pages in the IDE to modify all properties, especially those that participate in inheritance, unless you have a very good understanding of MSBuild.
7980

8081
The following illustration shows the property pages for a Visual C++ project. In the left pane, the **VC++ Directories***rule* is selected, and the right pane lists the properties that are associated with that rule. The `$(...)` values are unfortunately called *macros*. These are *not* C/C++ macros but simply compile-time constants. Macros are discussed in the [Property page macros](#bkmkPropertiesVersusMacros) section later in this article.)
8182

docs/misc/includes/vs_dev15_md.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Visual Studio 2017 RC
1+
Visual Studio 2017

docs/what-s-new-for-visual-cpp-in-visual-studio.md

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,9 @@ This release brings several improvements in optimization, code generation, tools
6060
- Improved code generation of loops: Support for automatic vectorization of division of constant integers, better identification of memset patterns.
6161
- Improved code security: Improved emission of buffer overrun compiler diagnostics, and /guard:cf now guards switch statements that generate jump tables.
6262
- 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/).
63-
- 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/).
64-
- 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/).
63+
- 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/).
64+
- 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/).
65+
- When using co-routines, the Experimental keyword "yield" (available under /await switch) has been removed. Your code should be updated to use the "co_yield” instead. For more information, see the Visual C++ Team blog.
6566

6667
## C++ Libraries
6768

@@ -86,6 +87,7 @@ This release brings several improvements in optimization, code generation, tools
8687
* To increase compiler throughput, C++ Standard Library headers now avoid including declarations for unnecessary compiler intrinsics.
8788
* Slightly improved compiler diagnostics for incorrect bind() calls.
8889
* Improved the performance of std::string/std::wstring's move constructors by more than 3x
90+
* For a complete list of STL improvment see the [STL Fixes In VS 2017 RTM](https://blogs.msdn.microsoft.com/vcblog/2017/02/06/stl-fixes-in-vs-2017-rtm/).
8991

9092
### Open source library support
9193
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/).
@@ -99,8 +101,13 @@ The CPPRestSDK, a cross-platform web API for C++, has been updated to version 2.
99101
* Un-suppress valid warning C4640 about thread safe init of local statics in atlstr.h
100102
* Thread Safe Initialization of local statics was automatically turned off in the XP toolset when [using ATL AND building a DLL]. This is no longer the case. You can add /Zc:threadSafeInit- in your Project settings if having thread safe initialization off is desired.
101103

104+
### Visual C++ Runtime
105+
* New header "cfguard.h" for Control Flow Guard symbols.
106+
102107
## C++ IDE
103108

109+
* Configuration change performance is now better for C++ native projects and much better for C++/CLI projects. When a solution configuration is activated for the first time it will now be faster and all subsequent activations of this solution configuration will be almost instantaneous.
110+
104111
### Intellisense
105112
* 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).
106113

@@ -120,37 +127,38 @@ The CPPRestSDK, a cross-platform web API for C++, has been updated to version 2.
120127

121128
* Find All References (Shift+F12) now helps you get around easily, even in complex codebases. It provides advanced grouping, filtering, sorting, searching within results, and (for some languages) colorization, so you can get a clear understanding of your references. For C++, the new UI includes information about whether we are reading from or writing to a variable.
122129

123-
* _**New in RC**_ The Dot-to-Arrow IntelliSense feature has been moved from experimental to advanced, and is now enabled by default. The editor features Expand Scopes and Expand Precedence have also been moved from experimental to advanced.
130+
* The Dot-to-Arrow IntelliSense feature has been moved from experimental to advanced, and is now enabled by default. The editor features Expand Scopes and Expand Precedence have also been moved from experimental to advanced.
124131

125-
* _**New in RC**_ The experimental refactoring features Change Signature and Extract Function are now available by default.
132+
* The experimental refactoring features Change Signature and Extract Function are now available by default.
126133

127-
* _**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!
134+
* 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!
128135

129136
Some of these features are common to other languages, and some are specific to C++. For more information about these new features, see [Announcing Visual Studio “15”](https://blogs.msdn.microsoft.com/visualstudio/2016/10/05/announcing-visual-studio-15-preview-5/).
130137

131138
### Support for non-MSBuild projects with Open Folder
132139
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. 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/).
133140

134-
* _**New in RC**_ Improvements to the Open Folder experience.
135-
You can customize the experience through these json files:
141+
* Improvements to the Open Folder experience. You can customize the experience through these json files:
136142
- CppProperties.json to customize the IntelliSense and browsing experience.
137143
- Tasks.json to customize the build steps.
138144
- Launch.json to customize the debugging experience.
139145

140146
### CMake support via Open Folder
141-
Visual Studio 2017 introduces support for using CMake projects without converting to MSBuild project files (.vcxproj). For more information, see [CMake support in Visual Studio](https://blogs.msdn.microsoft.com/vcblog/2016/10/05/cmake-support-in-visual-studio/). Opening CMake projects with “Open Folder” will automatically configure the environment for C++ editing, building and debugging.
147+
Visual Studio 2017 introduces support for using CMake projects without converting to MSBuild project files (.vcxproj). For more information, see [CMake support in Visual Studio](https://blogs.msdn.microsoft.com/vcblog/2016/10/05/cmake-support-in-visual-studio/) and [CMake support in Visual Studio 2017 – what’s new in the RC.2 update](https://blogs.msdn.microsoft.com/vcblog/2016/12/20/cmake-support-in-visual-studio-2017-whats-new-in-the-rc-update/). Opening CMake projects with “Open Folder” will automatically configure the environment for C++ editing, building and debugging.
142148

143-
* _**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.
149+
* 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.
144150

145-
* _**New in RC**_ Further configuration is supported via a CMakeSettings.json file that sits in the same folder as the CMakeLists.txt file.
151+
* Further configuration is supported via a CMakeSettings.json file that sits in the same folder as the CMakeLists.txt file.
146152

147153
![Cmake Open Folder](media/cmake_cpp.png "CMake Open Folder")
148154

149155

150156
## C++ Installation Workloads
151157

152158
### Windows Desktop Development with C++:
153-
We now provide a more granular installation experience for installing the original C++ workload. We have added selectable components that enable you to install just the tools that you need. Please note that the indicated installation sizes for the components listed in the installer UI are not accurate and underestimate the total size.
159+
We now provide a more granular installation experience for installing the original C++ workload. We have added selectable components that enable you to install just the tools that you need. Please note that the indicated installation sizes for the components listed in the installer UI are not accurate and underestimate the total size.
160+
161+
To successfully create Win32 projects in the C++ desktop workload, you must install both a toolset and a Windows SDK. Installing the recommended (selected) components “VC++ 2017 v141 toolset (x86, x64)” and “Windows 10 SDK (10.0.14393)” will ensure this will work. If the necessary tools are not installed, projects will not be created successfully and the wizard will hang.
154162

155163
### Linux Development with C++:
156164
The popular extension [Visual C++ for Linux Development](https://visualstudiogallery.msdn.microsoft.com/725025cf-7067-45c2-8d01-1e0fd359ae6e) is now part of Visual Studio. This installation provides everything you need to develop and debug C++ applications running on a Linux environment.
@@ -162,7 +170,7 @@ Use the full power of C++ to build professional games powered by DirectX or Coco
162170
You can now create and debug mobile apps using Visual Studio that can target Android and iOS.
163171

164172
### Universal Windows Apps:
165-
C++ comes as an optional component for the Universal Windows App workload.
173+
C++ comes as an optional component for the Universal Windows App workload. Upgrading C++ projects currently must be done manually. If you open a v140-targeted UWP project in Visual Studio 2017, you need to select the v141 platform toolset in the project property pages if you do not have Visual Studio 2015 installed.
166174

167175
## New options for C++ on Universal Windows Platform
168176
You now have new options for writing and packaging C++ applications for the Universal Windows Platform and the Windows Store:

0 commit comments

Comments
 (0)