Skip to content

Repo sync for protected branch #5204

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Feb 24, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file removed docs/build/media/desktop-app-project-run-150.gif
Binary file not shown.
Binary file removed docs/build/media/vscpp-quickstart-first-run.gif
Binary file not shown.
6 changes: 1 addition & 5 deletions docs/build/vscpp-step-0-installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -261,11 +261,7 @@ For details on the disk space and operating system requirements, see [Visual Stu

The first time you run Visual Studio, you're asked to sign in with a Microsoft Account. If you don't have one, you can create one for free. You must also choose a theme. Don't worry, you can change it later if you want to.

It might take Visual Studio several minutes to get ready for use the first time you run it. Here's what it looks like in a quick time-lapse:

![Visual Studio sign in dialog.](media/vscpp-quickstart-first-run.gif "Visual Studio 2017 sign in")

Visual Studio starts faster when you run it again.
It might take Visual Studio several minutes to get ready for use the first time you run it.

1. When Visual Studio opens, check to see if the flag icon in the title bar is highlighted:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,9 @@ These versions of the compiler introduced new warnings:
| Visual Studio 2022 version 17.8 | 19.38 |
| Visual Studio 2022 version 17.9 | 19.39 |
| Visual Studio 2022 version 17.10 | 19.40 |
| Visual Studio 2022 version 17.11 | 19.41 |
| Visual Studio 2022 version 17.12 | 19.42 |
| Visual Studio 2022 version 17.13 | 19.43 |


You can specify only the major number, the major and minor numbers, or the major, minor, and build numbers to the **`/Wv`** option. The compiler reports all warnings that match versions that begin with the specified number. It suppresses all warnings for versions greater than the specified number. For example, **`/Wv:17`** reports warnings introduced in or before any version of Visual Studio 2012, and suppresses warnings introduced by any compiler from Visual Studio 2013 (version 18) or later. To suppress warnings introduced in Visual Studio 2015 update 2 and later, you can use **`/Wv:19.00.23506`**. Use **`/Wv:19.11`** to report the warnings introduced in any version of Visual Studio before Visual Studio 2017 version 15.5, but suppress warnings introduced in Visual Studio 2017 version 15.5 and later.
Expand All @@ -61,6 +64,32 @@ The following sections list the warnings introduced by each version of Visual C+

::: moniker range=">= msvc-170"

## Warnings introduced in Visual Studio 2022 version 17.13 (compiler version 19.43)

These warnings, and all warnings in later versions, are suppressed by using the compiler option **`/Wv:19.43`**.

| Warning | Message |
|--|--|
|C5277| type trait optimization for '*class name*' is disabled
|C5308| Modifying reserved macro name '*macro name*' may cause undefined behavior
|C5309| literal suffix '*name*' requires at least '*language version*'

## Warnings introduced in Visual Studio 2022 version 17.12 (compiler version 19.42)

These warnings, and all warnings in later versions, are suppressed by using the compiler option **`/Wv:19.42`**.

| Warning | Message |
|--|--|
|C5086| Arch setting *arch* and vector length *number* are not allowed. Using the default vector length - *number*.
|C5276| `/experimental:ifcDebugRecords` currently requires `/Z7` to be enabled. Please recompile with `/Z7` enabled.
|C5306| parameter array behavior change: overload '*identifier 1*' resolved to '*identifier 2*'; previously, it would have resolved to '*identifier 3*'. Use `/clr:ECMAParamArray` to revert to old behavior
|C5307| '*function*': argument (*argument number*) converted from '*type 1*' to '*type 2*'. Missing '`L`' encoding-prefix for character literal?


## Warnings introduced in Visual Studio 2022 version 17.11 (compiler version 19.41)

There were no new warnings introduced in 17.11

## Warnings introduced in Visual Studio 2022 version 17.10 (compiler version 19.40)

These warnings, and all warnings in later versions, are suppressed by using the compiler option **`/Wv:19.40`**.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ The articles in this section describe Microsoft C/C++ compiler warning messages
|[Compiler warning (level 1) C4097](compiler-warning-level-1-c4097.md)|expected pragma parameter to be '`restore`' or '`off`'|
|[Compiler warning (level 1) C4098](compiler-warning-level-1-c4098.md)|'*function*': '`void`' function returning a value|
|[Compiler warning (level 2) C4099](compiler-warning-level-2-c4099.md)|'*identifier*': type name first seen using '*object_type1*' now seen using '*object_type2*'|
|[Compiler warning (level 4) C4100](compiler-warning-level-4-c4100.md)|'*identifier*': unreferenced formal parameter|
|[Compiler warning (level 4) C4100](compiler-warning-level-4-c4100.md)|'*identifier*': unreferenced parameter|
|[Compiler warning (level 3 and level 4) C4101](compiler-warning-level-3-c4101.md)|'*identifier*': unreferenced local variable|
|[Compiler warning (level 3) C4102](compiler-warning-level-3-c4102.md)|'*label*': unreferenced label|
|[Compiler warning (level 1) C4103](compiler-warning-level-1-c4103.md)|alignment changed after including header, may be due to missing `#pragma pack(pop)`|
Expand Down Expand Up @@ -154,7 +154,7 @@ The articles in this section describe Microsoft C/C++ compiler warning messages
|[Compiler warning (level 1) C4187](compiler-warning-level-1-c4187.md)|`#import` attributes '*attribute1*' and '*attribute2*' are incompatible; both ignored|
|Compiler warning (level 1) C4188|constant expression is not integral|
|[Compiler warning (level 3 and level 4) C4189](compiler-warning-level-4-c4189.md)|'*identifier*': local variable is initialized but not referenced|
|[Compiler warning (level 1) C4190](compiler-warning-level-1-c4190.md)|'*identifier1*' has C-linkage specified, but returns UDT '*identifier2*' which is incompatible with C|
|[Compiler warning (level 1) C4190](compiler-warning-level-1-c4190.md)|'*identifier1*' has C-linkage specified, but returns '*identifier2*' which is incompatible with C|
|[Compiler warning (level 3, off) C4191](compiler-warning-level-3-c4191.md)|'*operation*': unsafe conversion from '*type_of_expression*' to '*type_required*'<br/>Making a function call using the resulting pointer may cause your program to fail|
|[Compiler warning (level 3) C4192](compiler-warning-level-3-c4192.md)|automatically excluding '*identifier*' while importing type library '*library*'|
|Compiler warning (level 3) C4193|`#pragma warning(pop)`: no matching '`#pragma warning(push)`'|
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ The articles in this section describe Microsoft C/C++ compiler warning messages
|[Compiler warning (level 4) C4463](compiler-warning-level-4-c4463.md)|overflow; assigning *value* to bit-field that can only hold values from *min_value* to *max_value*|
|[Compiler warning (level 4, off) C4464](compiler-warning-level-4-c4464.md)|relative include path contains '`..`'|
|Compiler warning C4466|Could not perform coroutine heap elision|
|Compiler warning (level 1) C4465|'*identifier*': use of dependent template requires `::template`|
|Compiler warning (level 1) C4467|Usage of ATL attributes is deprecated|
|Compiler warning (level 1) C4468|The `[[fallthrough]]` attribute must be followed by a `case` label or a `default` label|
|[Compiler warning (level 1) C4470](compiler-warning-level-1-c4470.md)|floating-point control pragmas ignored under `/clr`|
Expand Down Expand Up @@ -156,7 +157,7 @@ The articles in this section describe Microsoft C/C++ compiler warning messages
|[Compiler warning (level 1) C4556](compiler-warning-level-1-c4556.md)|value of intrinsic immediate argument '*value*' is out of range '*lower_bound* - *upper_bound*'|
|[Compiler warning (level 3, off) C4557](compiler-warning-level-3-c4557.md)|'`__assume`' contains effect '*effect*'|
|[Compiler warning (level 1) C4558](compiler-warning-level-1-c4558.md)|value of operand '*value*' is out of range '*lower_bound* - *upper_bound*'|
|[Compiler warning (level 4) C4559](compiler-warning-level-4-c4559.md)|''*function*': redefinition; the function gains `__declspec(`*modifier*`)`|
|[Compiler warning (level 4) C4559](compiler-warning-level-4-c4559.md)|'*function*': redefinition; the function gains `__declspec(`*modifier*`)`|
|[Compiler warning (level 1) C4561](compiler-warning-level-1-c4561.md)|'`__fastcall`' incompatible with the '`/clr`' option: converting to '`__stdcall`'|
|Compiler warning (level 4) C4562|fully prototyped functions are required with the '`/clr`' option: converting '`()`' to '`(void)`'|
|[Compiler warning (level 4) C4564](compiler-warning-level-4-c4564.md)|method '*method*' of *class* '*classname*' defines unsupported default parameter '*parameter*'|
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ The articles in this section describe Microsoft C/C++ compiler warning messages
| [Compiler warning (level 1, off) C5248](c5248.md) | section '*section-name*' is reserved for C++ dynamic initialization. Variables manually put into the section may be optimized out and their order relative to compiler generated dynamic initializers is unspecified |
| Compiler warning (level 1, off) C5249 | '*bitfield*' of type '*enumeration_name*' has named enumerators with values that cannot be represented in the given bit field width of '*bitfield_width*'. |
| Compiler warning (level 3, off) C5250 | '*function_name*': intrinsic function not declared |
| Compiler warning (level 4, off) C5251 | *segment-name* changed after including header |
| Compiler warning (level 4, off) C5251 | the value of `#pragma` *pragma name* changed after `#include`; `#pragma `*pragma name*`(pop)` missing in this header? |
| Compiler warning (level 4) C5252 | Multiple different types resulted in the same XFG type-hash *hash-value*; the PDB will only record information for one of them |
| Compiler warning (level 4) C5253 | a non-local lambda cannot have a capture default |
| Compiler warning (level 4, off) C5254 | language feature 'terse static assert' requires compiler flag '*/std:c++17*' |
Expand All @@ -90,12 +90,28 @@ The articles in this section describe Microsoft C/C++ compiler warning messages
| Compiler warning (level 1) C5273 | behavior change: `_Alignas` on anonymous type no longer ignored (promoted members will align) |
| Compiler warning (level 1) C5274 | behavior change: `_Alignas` no longer applies to the type '*type*' (only applies to declared data objects) |
| Compiler warning (error) C5275 | assembly '*name*' being imported under '*/clr*' does not contain the required fundamental types |
| Compiler warning (level 1) C5276 | `/experimental:ifcDebugRecords` currently requires `/Z7` to be enabled. Please recompile with `/Z7` enabled.|
| Compiler warning (level 1) C5277 | type trait optimization for '*class name*' is disabled |
| Compiler warning (level 1) C5278 | adding a specialization for '*type*' has undefined behavior |
| Compiler warning (level 1) C5279 | a lambda declarator without a parameter list requires at least '*language version*' |
| Compiler warning (level 1) C5280 | a static operator '*operator name*' requires at least '*language version*'|
| Compiler warning (level 1) C5281 | a static lambda requires at least '*language version*' |
| Compiler warning (level 1) C5282 | '`if consteval`' requires at least '*language version*' |
| Compiler warning (level 1) C5283 | an attribute in this position requires at least '*language version*' |
| Compiler warning (level 4) C5284 | conversion from value '*value*' of type '*type 1*' to '*type 2*' requires a narrowing conversion |
| Compiler warning (level 1) C5285 | cannot declare a specialization for '*template name*': *template argument* |
| Compiler warning (level 1) C5286 | implicit conversion from `enum` type '*type 1*' to `enum` type '*type 2*'; use an explicit cast to silence this warning |
| Compiler warning (level 1) C5287 | operands are different `enum` types '*type 1*' and '*type 2*'; use an explicit cast to silence this warning |
| Compiler warning (error) C5300 | '`#pragma omp atomic` *clause*': expression mismatch for lvalue being updated |
| [Compiler warning (level 1) C5301](c5301-c5302.md) | '`#pragma omp for`': '*loop-index*' increases while loop condition uses '*comparison*'; non-terminating loop? |
| [Compiler warning (level 1) C5302](c5301-c5302.md) | '`#pragma omp for`': '*loop-index*' decreases while loop condition uses '*comparison*'; non-terminating loop? |
| Compiler warning (level 1) C5303 | function marked with `[[msvc::intrinsic]]` did not result in a no-op cast |
| Compiler warning (level 1) C5304 | a declaration designated by the using-declaration '*name1*' exported from this module has internal linkage and using such a name outside the module is ill-formed; consider declaring '*name2*' '`inline`' to use it outside of this module |
| Compiler warning (level 1) C5305 | '*name*': an explicit instantiation declaration that follows an explicit instantiation definition is ignored |
| Compiler warning (level 1) C5306 | parameter array behavior change: overload '*identifier 1*' resolved to '*identifier 2*'; previously, it would have resolved to '*identifier 3*'. Use `/clr:ECMAParamArray` to revert to old behavior |
| Compiler warning (level 3) C5307 | '*function*': argument (*argument number*) converted from '*type 1*' to '*type 2*'. Missing '`L`' encoding-prefix for character literal? |
| Compiler warning (level 1, error) C5308 | Modifying reserved macro name '*macro name*' may cause undefined behavior |
| Compiler warning (level 1, error) C5309 | literal suffix '*name*' requires at least '*language version*'|

## See also

Expand Down