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
Under **/Zc:twoPhase-** and in older compilers, the compiler only requires the `template` keyword on line 2. By default, and in conformance mode, the compiler now also requires the `template` keyword on line 4 to indicate that `T::X<T>` is a template. Look for code that is missing this keyword, and supply it to make your code conform to the standard.
148
148
149
-
For more information about conformance issues, see [C++ conformance improvements in Visual Studio](../../overview/cpp-conformance-improvements-2017.md) and [Nonstandard Behavior](../../cpp/nonstandard-behavior.md).
149
+
For more information about conformance issues, see [C++ conformance improvements in Visual Studio](../../overview/cpp-conformance-improvements.md) and [Nonstandard Behavior](../../cpp/nonstandard-behavior.md).
150
150
151
151
### To set this compiler option in the Visual Studio development environment
Copy file name to clipboardExpand all lines: docs/overview/2017/what-s-new-for-visual-cpp-in-visual-studio.md
+4-4Lines changed: 4 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -16,15 +16,15 @@ Visual Studio 2017 brings many updates and fixes to the C++ environment. We've f
16
16
17
17
### C++ conformance improvements
18
18
19
-
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 detailed information, see [C++ Conformance Improvements in Visual Studio 2017](../cpp-conformance-improvements-2017.md).
19
+
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 detailed information, see [C++ Conformance Improvements in Visual Studio 2017](../cpp-conformance-improvements.md).
20
20
21
-
**Visual Studio 2017 version 15.5**: The compiler supports about 75% of the features that are new in C++17, including structured bindings, `constexpr` lambdas, `if constexpr`, inline variables, fold expressions, and adding `noexcept` to the type system. These are available under the **/std:c++17** option. For more information, see [C++ Conformance Improvements in Visual Studio 2017](../cpp-conformance-improvements-2017.md)
21
+
**Visual Studio 2017 version 15.5**: The compiler supports about 75% of the features that are new in C++17, including structured bindings, `constexpr` lambdas, `if constexpr`, inline variables, fold expressions, and adding `noexcept` to the type system. These are available under the **/std:c++17** option. For more information, see [C++ Conformance Improvements in Visual Studio 2017](../cpp-conformance-improvements.md)
22
22
23
23
**Visual Studio 2017 version 15.7**: The MSVC compiler toolset in Visual Studio version 15.7 now conforms with the C++ Standard. For more information, see [Announcing: MSVC Conforms to the C++ Standard](https://blogs.msdn.microsoft.com/vcblog/2018/05/07/announcing-msvc-conforms-to-the-c-standard/) and [Microsoft C++ Language Conformance](../visual-cpp-language-conformance.md).
24
24
25
25
### New compiler options
26
26
27
-
-[/permissive-](../../build/reference/permissive-standards-conformance.md): Enable all strict standards conformance compiler options and disable most Microsoft-specific compiler extensions (but not `__declspec(dllimport)`, for example). This option is on by default in Visual Studio 2017 version 15.5. The **/permissive-** conformance mode includes support for two-phase name lookup. For more information, see [C++ Conformance Improvements in Visual Studio 2017](../../cpp-conformance-improvements-2017.md).
27
+
-[/permissive-](../../build/reference/permissive-standards-conformance.md): Enable all strict standards conformance compiler options and disable most Microsoft-specific compiler extensions (but not `__declspec(dllimport)`, for example). This option is on by default in Visual Studio 2017 version 15.5. The **/permissive-** conformance mode includes support for two-phase name lookup. For more information, see [C++ Conformance Improvements in Visual Studio 2017](../../cpp-conformance-improvements.md).
28
28
29
29
-[/diagnostics](../../build/reference/diagnostics-compiler-diagnostic-options.md): Enable display of the line number, the line number and column, or the line number and column and a caret under the line of code where the diagnostic error or warning was found.
30
30
@@ -59,7 +59,7 @@ Visual C++ runtime performance continues to improve due to better generated code
59
59
60
60
The Microsoft C++ compiler supports Intel's AVX-512, including the Vector Length instructions that bring new functions in AVX-512 to 128- and 256-bit wide registers.
61
61
62
-
The [/Zc:noexceptTypes-](../../build/reference/zc-noexcepttypes.md) option can be used to revert to the C++14 version of `noexcept` while using C++17 mode in general. This enables you to update your source code to conform to C++17 without having to rewrite all your `throw()` code at the same time. For more information, see [Dynamic exception specification removal and noexcept](../../cpp-conformance-improvements-2017.md#noexcept_removal).
62
+
The [/Zc:noexceptTypes-](../../build/reference/zc-noexcepttypes.md) option can be used to revert to the C++14 version of `noexcept` while using C++17 mode in general. This enables you to update your source code to conform to C++17 without having to rewrite all your `throw()` code at the same time. For more information, see [Dynamic exception specification removal and noexcept](../../cpp-conformance-improvements.md#noexcept_removal).
Copy file name to clipboardExpand all lines: docs/overview/visual-cpp-language-conformance.md
+3-3Lines changed: 3 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ ms.author: "corob"
10
10
11
11
This topic summarizes the ISO C++03, C++11, C++14, C++17, and Draft C++20 language standards conformance of compiler features and Standard Library features for the C++ compiler in Visual Studio 2017 and earlier versions. Each compiler and standard library feature name links to the ISO C++ Standard proposal paper that describes the feature, if one is available at publication time. The Supported column lists the Visual Studio version in which support for the feature first appeared.
12
12
13
-
For details on conformance improvements and other changes in Visual Studio 2017, see [C++ conformance improvements in Visual Studio 2017](cpp-conformance-improvements-2017.md) and [What's New for Visual C++ in Visual Studio 2017](what-s-new-for-visual-cpp-in-visual-studio.md). For conformance changes in earlier versions, see [Visual C++ change history](../porting/visual-cpp-change-history-2003-2015.md) and [Visual C++ What's New 2003 through 2015](../porting/visual-cpp-what-s-new-2003-through-2015.md). For current news from the C++ team, visit the [Visual C++ team blog](https://blogs.msdn.microsoft.com/vcblog/).
13
+
For details on conformance improvements and other changes in Visual Studio 2017, see [C++ conformance improvements in Visual Studio 2017](cpp-conformance-improvements.md) and [What's New for Visual C++ in Visual Studio 2017](what-s-new-for-visual-cpp-in-visual-studio.md). For conformance changes in earlier versions, see [Visual C++ change history](../porting/visual-cpp-change-history-2003-2015.md) and [Visual C++ What's New 2003 through 2015](../porting/visual-cpp-what-s-new-2003-through-2015.md). For current news from the C++ team, visit the [Visual C++ team blog](https://blogs.msdn.microsoft.com/vcblog/).
14
14
15
15
> [!NOTE]
16
16
> There are no binary breaking changes between Visual Studio 2015 and Visual Studio 2017.
@@ -310,8 +310,8 @@ The following are not presently parallelized:
310
310
311
311
[C++ Language Reference](../cpp/cpp-language-reference.md)<br/>
312
312
[C++ Standard Library](../standard-library/cpp-standard-library-reference.md)<br/>
313
-
[C++ conformance improvements in Visual Studio 2017](cpp-conformance-improvements-2017.md)<br/>
314
-
[What's New for Visual C++ in Visual Studio 2017](what-s-new-for-visual-cpp-in-visual-studio.md)<br/>
313
+
[C++ conformance improvements in Visual Studio](cpp-conformance-improvements.md)<br/>
314
+
[What's New for Visual C++ in Visual Studio](what-s-new-for-visual-cpp-in-visual-studio.md)<br/>
315
315
[Visual C++ change history 2003 through 2015](../porting/visual-cpp-change-history-2003-2015.md)<br/>
316
316
[Visual C++ What's New 2003 through 2015](../porting/visual-cpp-what-s-new-2003-through-2015.md)<br/>
317
317
[Visual C++ team blog](https://blogs.msdn.microsoft.com/vcblog/)
Copy file name to clipboardExpand all lines: docs/porting/overview-of-potential-upgrade-issues-visual-cpp.md
+4-4Lines changed: 4 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -105,7 +105,7 @@ For example, the `/Zc:forScope` switch was introduced early in the history of MS
105
105
106
106
One example of a common compiler error you might see when upgrading is when a non-const argument is passed to a const parameter. Older versions of the compiler did not always flag this as an error. For more information, see [The compiler's more strict conversions](porting-guide-spy-increment.md#stricter_conversions).
107
107
108
-
For more information on specific conformance improvements, see [Visual C++ change history 2003 - 2015](visual-cpp-change-history-2003-2015.md) and [C++ conformance improvements in Visual Studio 2017](../overview/cpp-conformance-improvements-2017.md).
108
+
For more information on specific conformance improvements, see [Visual C++ change history 2003 - 2015](visual-cpp-change-history-2003-2015.md) and [C++ conformance improvements in Visual Studio](../overview/cpp-conformance-improvements.md).
109
109
110
110
## Errors involving \<stdint.h> integral types
111
111
@@ -121,7 +121,7 @@ The [/showIncludes](../build/reference/showincludes-list-include-files.md) compi
121
121
122
122
Many changes have been made to the C runtime over the years. Many secure versions of functions have been added, and some have been removed. Also, as described earlier in this article, Microsoft’s implementation of the CRT was refactored in Visual Studio 2015 into new binaries and associated .lib files.
123
123
124
-
If an error involves a CRT function, search [Visual C++ change history 2003 - 2015](visual-cpp-change-history-2003-2015.md) or [C++ conformance improvements in Visual Studio 2017](../overview/cpp-conformance-improvements-2017.md) to see if those topics contain any additional information. If the error is LNK2019, unresolved external, make sure the function has not been removed. Otherwise, if you are sure that the function still exists, and the calling code is correct, check to see whether your project uses `/NODEFAULTLIB`. If so you need to update the list of libraries so that the project uses the new universal (UCRT) libraries. See the section above on Library and dependencies for more information.
124
+
If an error involves a CRT function, search [Visual C++ change history 2003 - 2015](visual-cpp-change-history-2003-2015.md) or [C++ conformance improvements in Visual Studio](../overview/cpp-conformance-improvements.md) to see if those topics contain any additional information. If the error is LNK2019, unresolved external, make sure the function has not been removed. Otherwise, if you are sure that the function still exists, and the calling code is correct, check to see whether your project uses `/NODEFAULTLIB`. If so you need to update the list of libraries so that the project uses the new universal (UCRT) libraries. See the section above on Library and dependencies for more information.
125
125
126
126
If the error involves `printf` or `scanf`, make sure that you are not privately defining either function without including stdio.h. If so, either remove the private definitions or link to legacy\_stdio\_definitions.lib. You can set this in the **Property Pages** dialog under **Configuration Properties** > **Linker** > **Input**, in the **Additional Dependencies** property. If you are linking with Windows SDK 8.1 or earlier, then add legacy\_stdio\_definitions.lib.
127
127
@@ -155,7 +155,7 @@ For more information, see [Updating the Target Windows Version](porting-guide-sp
155
155
156
156
## ATL / MFC
157
157
158
-
ATL and MFC are relatively stable APIs but changes are made occasionally. See the [Visual C++ change history 2003 - 2015](visual-cpp-change-history-2003-2015.md) for more information and [What's New for Visual C++ in Visual Studio 2017](../overview/what-s-new-for-visual-cpp-in-visual-studio.md) and [C++ conformance improvements in Visual Studio 2017](../overview/cpp-conformance-improvements-2017.md).
158
+
ATL and MFC are relatively stable APIs but changes are made occasionally. See the [Visual C++ change history 2003 - 2015](visual-cpp-change-history-2003-2015.md) for more information and [What's New for Visual C++ in Visual Studio](../overview/what-s-new-for-visual-cpp-in-visual-studio.md) and [C++ conformance improvements in Visual Studio](../overview/cpp-conformance-improvements.md).
159
159
160
160
### LNK 2005 _DllMain@12 already defined in MSVCRTD.lib
161
161
@@ -176,4 +176,4 @@ For more information, see [Porting from MBCS to Unicode](porting-guide-spy-incre
176
176
## See also
177
177
178
178
[Upgrading Projects from Earlier Versions of Visual C++](upgrading-projects-from-earlier-versions-of-visual-cpp.md)<br/>
179
-
[C++ conformance improvements in Visual Studio 2017](../overview/cpp-conformance-improvements-2017.md)
179
+
[C++ conformance improvements in Visual Studio](../overview/cpp-conformance-improvements.md)
This article describes all the breaking changes from Visual Studio 2015 going back to Visual Studio 2003, and in this article the terms "new behavior" or "now" refer to Visual Studio 2015 and later. The terms "old behavior" and "before" refer to Visual Studio 2013 and earlier releases.
10
10
11
-
For information about Visual Studio 2017, see [What's new for Visual C++ in Visual Studio 2017](../overview/what-s-new-for-visual-cpp-in-visual-studio.md) and [Conformance Improvements in Visual C++ in Visual Studio 2017](../overview/cpp-conformance-improvements-2017.md).
11
+
For information about the latest version of Visual Studio, see [What's new for Visual C++ in Visual Studio](../overview/what-s-new-for-visual-cpp-in-visual-studio.md) and [Conformance Improvements in Visual C++ in Visual Studio](../overview/cpp-conformance-improvements.md).
12
12
13
13
> [!NOTE]
14
14
> There are no binary breaking changes between Visual Studio 2015 and Visual Studio 2017.
Copy file name to clipboardExpand all lines: docs/porting/visual-cpp-porting-and-upgrading-guide.md
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -70,8 +70,8 @@ Alternatively, perhaps you now have new requirements, or you can foresee the nee
70
70
|Title|Description|
71
71
|-----------|-----------------|
72
72
|[Upgrading Projects from Earlier Versions of Visual C++](upgrading-projects-from-earlier-versions-of-visual-cpp.md)|Discusses how to use projects created in earlier versions of Visual C++.|
73
-
|[What's New for The C++ compiler in Visual Studio 2017 RC](../overview/what-s-new-for-visual-cpp-in-visual-studio.md)|Changes in the IDE and tools from Visual Studio 2015 to Visual Studio 2017|
74
-
|[C++ conformance improvements in Visual Studio 2017](../overview/cpp-conformance-improvements-2017.md)|Standards conformance improvements from Visual Studio 2015 to Visual Studio 2017|
73
+
|[What's New for The C++ compiler in Visual Studio](../overview/what-s-new-for-visual-cpp-in-visual-studio.md)|Changes in the IDE and tools to the current version of Visual Studio|
74
+
|[C++ conformance improvements in Visual Studio](../overview/cpp-conformance-improvements.md)|Standards conformance improvements from Visual Studio 2015 to Visual Studio|
75
75
|[Visual C++ change history 2003 - 2015](visual-cpp-change-history-2003-2015.md)|A list of all the changes in the Visual C++ libraries and build tools from Visual Studio 2003 through 2015 that might require changes in your code.|
76
76
|[Visual C++ What's New 2003 through 2015](visual-cpp-what-s-new-2003-through-2015.md)|All the "what's new" information for Visual C++ from Visual Studio 2003 through Visual Studio 2015.|
77
77
|[Porting 3rd-party libraries](porting-third-party-libraries.md)|How to use the **vcpkg** command line tool to port older open-source libraries to versions compiled with more recent Visual C++ toolsets.|
This page gathers all the "What's New" pages for all versions of Visual C++ from Visual Studio 2015 back to 2003. This information is provided as a convenience in case it might be useful when upgrading from earlier versions of Visual C++.
9
9
10
10
> [!NOTE]
11
-
> For information about Visual Studio 2017, see [What's new for Visual C++ in Visual Studio 2017](../overview/what-s-new-for-visual-cpp-in-visual-studio.md) and [Conformance Improvements in Visual C++ in Visual Studio 2017](../overview/cpp-conformance-improvements-2017.md).
11
+
> For information about the current version of Visual Studio, see [What's new for Visual C++ in Visual Studio](../overview/what-s-new-for-visual-cpp-in-visual-studio.md) and [Conformance Improvements in Visual C++ in Visual Studio](../overview/cpp-conformance-improvements.md).
0 commit comments