Skip to content

Commit be3388e

Browse files
Taojunshenesweet431opbld16Colin Robertsonopbld17
authored
12/1/2021 AM Publish (MicrosoftDocs#3953)
* Add gray border * LinkFix: cpp-docs-pr (2021-11) * Clarify C4146 per VCSig list (MicrosoftDocs#3923) * Clarify C4146 per VCSig list * Fix link issues. * Update enable CMake Presets * fix rel links * fix github 3528 * acrolinx * change order of example * Add version info to NMAKE macro functions * Bulk fix entity `&amp;` part 3 * threshhold test * Eliminate even more `&amp;` entities * Minimum Viable Phix * Once more into the `&amp;` breech * Add Visual Studio 2022 Platform Toolset Version * Add /fpcvt compiler option docs (MicrosoftDocs#3886) * Add /fpcvt compiler option docs * Fix copypasta error * Update fp conversion intrinsics, too. * Replace deleted table row * Acrolinx pass * Fix TOC issues * Add useful links to intrinsics * Updates per John Morgan, plus acrolink * Update version info * Clean up rvalue reference article * Fix to `/fpcvt` per John Morgan email * Reformat WeakRef class document. * Update Advanced prop page and C1107 * Remove unrelated change. * Minimizing entity form of & (#3916) * Initial pass minimizing on &gt; entities (#3919) * Initial pass on &gt; entities * Fix everything. * Try without `&lt;` entities in title/desc * Clean up pass * Update docs/atl-mfc-shared/reference/cfiletime-class.md Co-authored-by: Tracey Torble <[email protected]> * Update tn026-ddx-and-ddv-routines.md `DoDialogExchange` -> `DoDataExchange` * github fix 3544 * GITHUB FIX FOR #3549 * Add UWP to list of unsupported ASAN features. * Fix misnamed mt.exe options. Acrolinx all. * Attempt fpcvt simplification per John Morgan. * Fix cpp-docs 3546 * Address complaint in cpp-docs 3554 (#3950) Co-authored-by: Erika <[email protected]> Co-authored-by: opbld16 <[email protected]> Co-authored-by: Colin Robertson <[email protected]> Co-authored-by: opbld17 <[email protected]> Co-authored-by: Christopher McClister <[email protected]> Co-authored-by: PRMerger16 <[email protected]> Co-authored-by: Laura Brenner <[email protected]> Co-authored-by: opbld15 <[email protected]> Co-authored-by: TylerMSFT <[email protected]> Co-authored-by: PRMerger18 <[email protected]> Co-authored-by: PRMerger4 <[email protected]> Co-authored-by: PRMerger6 <[email protected]> Co-authored-by: MohammadHadi Attarieh <[email protected]> Co-authored-by: PRMerger15 <[email protected]> Co-authored-by: PRMerger10 <[email protected]> Co-authored-by: Haig MacGregor <[email protected]> Co-authored-by: Tracey Torble <[email protected]> Co-authored-by: Waiting <[email protected]> Co-authored-by: Tyler Whitney <[email protected]> Co-authored-by: branh <[email protected]> Co-authored-by: John Ellison <[email protected]> Co-authored-by: PRMerger8 <[email protected]> Co-authored-by: PRMerger17 <[email protected]>
1 parent ae6b7d9 commit be3388e

File tree

9 files changed

+94
-77
lines changed

9 files changed

+94
-77
lines changed

docs/build/reference/advanced-property-page.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
---
22
description: "Use the Advanced property page in Visual Studio 2019 to set various properties for C++ projects."
33
title: "Advanced Property Page (Project)"
4-
ms.date: 05/28/2021
5-
f1_keywords: ["VC.Project.VCConfiguration.TargetExt", "VC.Project.VCConfiguration.DeleteExtensionsOnClean", "VC.Project.VCConfiguration.BuildLogFile", "VC.Project.VCConfiguration.PreferredToolArchitecture", "VC.Project.VCConfiguration.UseDebugLibraries", "VC.Project.VCConfiguration.EnableUnitySupport", "VC.Project.VCConfiguration.CopyLocalDeploymentContent", "VC.Project.VCConfiguration.CopyLocalProjectReference", "VC.Project.VCConfiguration.CopyLocalDebugSymbols", "VC.Project.VCConfiguration.CopyCppRuntimeToOutputDir", "VC.Project.VCConfiguration.useOfMfc", "VC.Project.VCConfiguration.CharacterSet", "VC.Project.VCConfiguration.WholeProgramOptimization", "VC.Project.VCConfiguration.VCToolsVersion", "VC.Project.VCConfiguration.LLVMToolsVersion", "VC.Project.VCConfiguration.ManagedExtensions", "VC.Project.TargetFrameworkVersion", "VC.Project.VCConfiguration.EnableManagedIncrementalBuild"]
4+
ms.date: 11/22/2021
5+
f1_keywords: ["VC.Project.VCConfiguration.TargetExt", "VC.Project.VCConfiguration.DeleteExtensionsOnClean", "VC.Project.VCConfiguration.BuildLogFile", "VC.Project.VCConfiguration.PreferredToolArchitecture", "VC.Project.VCConfiguration.UseDebugLibraries", "VC.Project.VCConfiguration.EnableUnitySupport", "VC.Project.VCConfiguration.CopyLocalDeploymentContent", "VC.Project.VCConfiguration.CopyLocalProjectReference", "VC.Project.VCConfiguration.CopyLocalDebugSymbols", "VC.Project.VCConfiguration.CopyCppRuntimeToOutputDir", "VC.Project.VCConfiguration.useOfMfc", "VC.Project.VCConfiguration.CharacterSet", "VC.Project.VCConfiguration.WholeProgramOptimization", "VC.Project.VCConfiguration.VCToolsVersion", "VC.Project.VCConfiguration.LLVMToolsVersion", "VC.Project.VCConfiguration.ManagedExtensions", "VC.Project.TargetFrameworkVersion", "VC.Project.VCConfiguration.EnableManagedIncrementalBuild", "VC.Project.VCConfiguration.ManagedAssembly"]
66
---
77
# Advanced Property Page
88

@@ -112,4 +112,8 @@ In managed projects, specifies the .NET framework version to target.
112112

113113
For managed projects, this option enables detection of external visibility when you generate assemblies. If a change to a managed project isn't visible to other projects, dependent projects aren't rebuilt. Managed incremental builds can dramatically improve build times in solutions that include managed projects.
114114

115+
### Enable CLR Support for Individual Files
116+
117+
This option sets a `ManagedAssembly` build property that enables building only some files in the project as managed code. You must set **Enable CLR Support for Individual Files** to **Yes** if some but not all of your project files are built as managed code. This property is only available in projects that use the v143 or later toolset in Visual Studio 2022 and later versions.
118+
115119
::: moniker-end

docs/build/reference/fpcvt.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ In Visual Studio 2019 version 16.8 and later versions, the **`/fpcvt`** compiler
3030

3131
For Visual Studio 2019, the default behavior for x64 targets is consistent with **`/fpcvt:BC`** unless **`/arch:AVX512`** is specified. Usually, the behavior for x86 targets is consistent with **`/fpcvt:IA`**, except under **`/arch:IA32`**, **`/arch:SSE`**, or sometimes where the result of a function call is directly converted to an unsigned integer. Use of **`/fpcvt`** overrides the default, so all conversions are handled consistently on either target. The behavior of conversions for ARM and ARM64 targets isn't consistent with either **`/fpcvt:BC`** or **`/fpcvt:IA`**.
3232

33-
Standard C++ specifies that if a floating-point value can be truncated to a value that can be exactly represented in an integer type, conversion of that floating-point value to that integer type must return the truncated value. Otherwise, any behavior at all is allowed. Both **`/fpcvt`** options conform with Standard C++. The only difference is in what values are returned for invalid source values.
33+
Standard C++ specifies that if a truncated floating-point value is exactly representable in an integer type, it must have that value when converted to that type. Otherwise, any behavior at all is allowed. Both **`/fpcvt`** options conform with Standard C++. The only difference is in what values are returned for invalid source values.
3434

35-
The **`/fpcvt:IA`** option causes any invalid conversion to return a single *sentinel* value, which is the destination value farthest from zero. For conversion to signed types, the sentinel is the minimum value for that type. Unsigned types use the maximum value. Floating-point operations may return a Not-a-Number (NaN) value to indicate an invalid operation. That's not an option for conversion to integer types, which don't have NaN values. The sentinel is used as a proxy for a NaN value, although it can also be the result of a valid conversion.
35+
The **`/fpcvt:IA`** option causes any invalid conversion to return a single *sentinel* value, which is the destination value farthest from zero. For conversion to signed types, the sentinel is the minimum value for that type. Unsigned types use the maximum value. Floating-point operations may return a Not-a-Number (NaN) value to indicate an invalid operation. That indicator isn't an option for conversion to integer types, which don't have NaN values. The sentinel is used as a proxy for a NaN value, although it can also be the result of a valid conversion.
3636

3737
The **`/fpcvt:BC`** option also makes conversion to signed types return the minimum possible value when the source is invalid. However, conversion to unsigned integer types is based on conversion to **`long long`**. To convert a value to **`unsigned int`**, the compiler first converts it to type **`long long`**. The compiler then truncates the result to 32 bits. To convert a value to **`unsigned long long`**, valid source values that are too high for a **`long long`** are handled as a special case. All other values are first converted to **`long long`** and then recast to **`unsigned long long`**.
3838

docs/build/reference/manifest-tool-property-pages.md

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
---
22
description: "Learn more about: Manifest Tool Property Pages"
33
title: "Manifest Tool Property Pages"
4-
ms.date: "07/24/2019"
5-
ms.topic: "article"
4+
ms.date: 11/30/2021
65
f1_keywords:
76
- VC.Project.VCManifestTool.SuppressStartupBanner
87
- VC.Project.VCManifestTool.VerboseOutput
@@ -24,37 +23,38 @@ f1_keywords:
2423
- VC.Project.VCManifestTool.UpdateFileHashes
2524
- VC.Project.VCManifestTool.UpdateFileHashesSearchPath
2625
- vc.project.AdditionalOptionsPage
27-
ms.assetid: f33499c4-7733-42d9-80e3-8a5018786965
2826
---
2927
# Manifest Tool Property Pages
3028

31-
Use these pages to specify general options for [Mt.exe](/windows/win32/sbscs/mt-exe). These pages are found under **Project** > **Properties** > **Configuration Properties** > **Manifest Tool**.
29+
Use these pages to specify general options for [`Mt.exe`](/windows/win32/sbscs/mt-exe). These pages are found under **Project** > **Properties** > **Configuration Properties** > **Manifest Tool**.
3230

3331
## General Property Page
3432

3533
### Suppress Startup Banner
3634

37-
**Yes (/nologo)** specifies that standard Microsoft copyright data will be concealed when the manifest tool is started. Use this option to suppress unwanted output in log files, when you run mt.exe as part of a build process or from a build environment.
35+
**Yes (`/nologo`)** specifies that standard Microsoft copyright data will be concealed when the manifest tool is started. Use this option to suppress unwanted output in log files when you run *`mt.exe`*, either as part of a build process or from a build environment.
3836

3937
### Verbose Output
4038

41-
**Yes (/verbose)** specifies that additional build information will be displayed during manifest generation.
39+
**Yes (`/verbose`)** specifies that more build information will be displayed during manifest generation.
4240

4341
### Assembly Identity
4442

45-
Uses the /identity option to specify an identity string, which comprises the attributes for the [\<assemblyIdentity> Element](/visualstudio/deployment/assemblyidentity-element-clickonce-application). An identity string begins with the value for the `name` attribute, and is followed by *attribute* = *value* pairs. The attributes in an identity string are delimited by a comma.
43+
Uses the **`/identity`** option to specify an identity string, which holds the attributes for the [`<assemblyIdentity>` element](/visualstudio/deployment/assemblyidentity-element-clickonce-application). An identity string begins with the value for the `name` attribute, and is followed by *attribute* = *value* pairs. The attributes in an identity string are delimited by a comma.
4644

47-
This is an example identity string: `Microsoft.Windows.Common-Controls, processorArchitecture=x86, version=6.0.0.0, type=win32, publicKeyToken=6595b64144ccf1df`
45+
Here's an example identity string:
46+
47+
`Microsoft.Windows.Common-Controls, processorArchitecture=x86, version=6.0.0.0, type=win32, publicKeyToken=6595b64144ccf1df`
4848

4949
## Input and Output Property Page
5050

5151
### Additional Manifest Files
5252

53-
Uses the **/manifest** option to specify the full paths of additional manifest files that the manifest tool will process or merge. Full paths are delimited by a semicolon. (-manifest [manifest1] [manifest2] ...)
53+
Uses the **`/manifest`** option to specify the full paths of more manifest files that the manifest tool will process or merge. Full paths are delimited by a semicolon. (`/manifest [manifest1] [manifest2] ...`)
5454

5555
### Input Resource Manifests
5656

57-
Uses the **/inputresource** option to specify the full path of a resource of type RT_MANIFEST, to input into the manifest tool. The path can be followed by the specified resource ID. For example:
57+
Uses the **`/inputresource`** option to specify the full path of a resource of type `RT_MANIFEST`, to input into the manifest tool. The path can be followed by the specified resource ID. For example:
5858

5959
`dll_with_manifest.dll;#1`
6060

@@ -66,31 +66,31 @@ Uses the **/inputresource** option to specify the full path of a resource of typ
6666

6767
### Output Manifest File
6868

69-
Specifies the name of the output manifest file. This property is optional when only one manifest file is operated upon by the manifest tool. (-out:[file];#[resource ID])
69+
Specifies the name of the output manifest file. This property is optional when only one manifest file is operated upon by the manifest tool. (`/out:[file];#[resource ID]`)
7070

7171
### Manifest Resource File
7272

7373
Specifies the output resources file used to embed the manifest into the project output.
7474

7575
### Generate Catalog Files
7676

77-
Uses the **/makecdfs** option to specify that the manifest tool will generate catalog definition files (.cdf files), which are used to make catalogs. (/makecdfs)
77+
Uses the **`/makecdfs`** option to specify that the manifest tool will generate catalog definition files (*`.cdf`* files), which are used to make catalogs. (`/makecdfs`)
7878

7979
### Generate Manifest From ManagedAssembly
8080

81-
Generates a manifest from a managed assembly. (-managedassemblyname:\[file])
81+
Generates a manifest from a managed assembly. (`/managedassemblyname:[file]`)
8282

8383
### Suppress Dependency Element
8484

85-
Used with -managedassembly. suppresses the generation of dependency elements in the final manifest. (-nodependency)
85+
Used with **`/managedassemblyname`**. Suppresses the generation of dependency elements in the final manifest. (`/nodependency`)
8686

8787
### Generate Category Tags
8888

89-
Used with -managedassembly. -category causes the category tags to be generated. (-category)
89+
Used with **`/managedassemblyname`**. **`/category`** causes the category tags to be generated. (`/category`)
9090

9191
### DPI Awareness
9292

93-
Specifies whether the application is DPI-aware. By default, the setting is **Yes** for MFC projects and **No** otherwise because only MFC projects have built in DPI awareness. You can override the setting to **Yes** if you add code to handle different DPI settings. Your application might appear fuzzy or small if you set it as DPI-aware when it is not.
93+
Specifies whether the application is DPI-aware. By default, the setting is **Yes** for MFC projects and **No** otherwise because only MFC projects have built in DPI awareness. You can override the setting to **Yes** if you add code to handle different DPI settings. Your application might appear fuzzy or small if it isn't DPI-aware, but you set a DPI-aware option.
9494

9595
**Choices**
9696

@@ -100,37 +100,37 @@ Specifies whether the application is DPI-aware. By default, the setting is **Yes
100100

101101
## Isolated COM Property Page
102102

103-
For more information about isolated COM, see [Isolated Applications](/windows/win32/SbsCs/isolated-applications) and [How to: Build Isolated Applications to Consume COM Components](../how-to-build-isolated-applications-to-consume-com-components.md).
103+
For more information about isolated COM, see [Isolated applications](/windows/win32/SbsCs/isolated-applications) and [How to: Build isolated applications to consume COM components](../how-to-build-isolated-applications-to-consume-com-components.md).
104104

105105
### Type Library File
106106

107-
Specifies the type library to use for regfree COM manifest support. (-tlb:[file])
107+
Specifies the type library to use for regfree COM manifest support. (`/tlb:[file]`)
108108

109109
### Registrar Script File
110110

111-
Specifies the registrar script file to use for regfree COM manifest support. (-rgs:[file])
111+
Specifies the registrar script file to use for regfree COM manifest support. (`/rgs:[file]`)
112112

113113
### Component File Name
114114

115-
Specifies the file name of the component that is built from the .tlb or .rgs specified. (-dll:[file])
115+
Specifies the file name of the component that is built from the .tlb or .rgs specified. (`/dll:[file]`)
116116

117117
### Replacements File
118118

119-
Specifies the file that contains values for replaceable strings in the RGS file. (replacements:[file])
119+
Specifies the file that contains values for replaceable strings in the RGS file. (`/replacements:[file]`)
120120

121121
## Advanced Property Page
122122

123123
### Update File Hashes
124124

125-
Computes the hash of files specified in the file elements and updates the hash attribute with this value. (hashupdate:[path])
125+
Computes the hash of files specified in the `file` elements, and then updates the hash attribute with this value. (`/hashupdate:[path]`)
126126

127127
### Update File Hashes Search Path
128128

129129
Specifies the search path to use when updating the file hashes.
130130

131131
### Additional Options
132132

133-
Additional Options
133+
Allows you to specify more options.
134134

135135
## See also
136136

docs/cpp/expressions-with-unary-operators.md

Lines changed: 31 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -9,66 +9,63 @@ ms.assetid: 1217685b-b85d-4b48-9ff4-d90f56a26c1b
99

1010
Unary operators act on only one operand in an expression. The unary operators are as follows:
1111

12-
- [Indirection operator (*)](../cpp/indirection-operator-star.md)
12+
- [Indirection operator (`*`)](../cpp/indirection-operator-star.md)
1313

14-
- [Address-of operator (&)](../cpp/address-of-operator-amp.md)
14+
- [Address-of operator (`&`)](../cpp/address-of-operator-amp.md)
1515

16-
- [Unary plus operator (+)](../cpp/unary-plus-and-negation-operators-plus-and.md)
16+
- [Unary plus operator (`+`)](../cpp/unary-plus-and-negation-operators-plus-and.md)
1717

18-
- [Unary negation operator (-)](../cpp/unary-plus-and-negation-operators-plus-and.md)
18+
- [Unary negation operator (`-`)](../cpp/unary-plus-and-negation-operators-plus-and.md)
1919

20-
- [Logical negation operator (!)](../cpp/logical-negation-operator-exclpt.md)
20+
- [Logical negation operator (`!`)](../cpp/logical-negation-operator-exclpt.md)
2121

22-
- [One's complement operator (~)](../cpp/one-s-complement-operator-tilde.md)
22+
- [One's complement operator (`~`)](../cpp/one-s-complement-operator-tilde.md)
2323

24-
- [Prefix increment operator (++)](../cpp/prefix-increment-and-decrement-operators-increment-and-decrement.md)
24+
- [Prefix increment operator (`++`)](../cpp/prefix-increment-and-decrement-operators-increment-and-decrement.md)
2525

26-
- [Prefix decrement operator (--)](../cpp/prefix-increment-and-decrement-operators-increment-and-decrement.md)
26+
- [Prefix decrement operator (`--`)](../cpp/prefix-increment-and-decrement-operators-increment-and-decrement.md)
2727

2828
- [Cast operator ()](../cpp/cast-operator-parens.md)
2929

3030
- [`sizeof` operator](../cpp/sizeof-operator.md)
3131

32-
- [`__uuidof` operator](../cpp/uuidof-operator.md)
33-
3432
- [`alignof` operator](../cpp/alignof-operator.md)
3533

34+
- [`noexcept` expression](../cpp/noexcept-cpp.md)
35+
3636
- [`new` operator](../cpp/new-operator-cpp.md)
3737

3838
- [`delete` operator](../cpp/delete-operator-cpp.md)
3939

4040
These operators have right-to-left associativity. Unary expressions generally involve syntax that precedes a postfix or primary expression.
4141

42-
The following are the possible forms of unary expressions.
43-
44-
- *postfix-expression*
45-
46-
- `++` *unary-expression*
47-
48-
- `--` *unary-expression*
49-
50-
- *unary-operator* *cast-expression*
51-
52-
- **`sizeof`** *unary-expression*
53-
54-
- `sizeof(` *type-name* `)`
55-
56-
- `decltype(` *expression* `)`
57-
58-
- *allocation-expression*
42+
## Syntax
5943

60-
- *deallocation-expression*
44+
*`unary-expression`*:\
45+
&emsp; *`postfix-expression`*\
46+
&emsp; **`++`** *`cast-expression`*\
47+
&emsp; **`--`** *`cast-expression`*\
48+
&emsp; *`unary-operator`* *`cast-expression`*\
49+
&emsp; **`sizeof`** *`unary-expression`*\
50+
&emsp; **`sizeof`** **`(`** *`type-id`* **`)`**\
51+
&emsp; **`sizeof`** **`...`** **`(`** *`identifier`* **`)`**\
52+
&emsp; **`alignof`** **`(`** *`type-id`* **`)`**\
53+
&emsp; *`noexcept-expression`*\
54+
&emsp; *`new-expression`*\
55+
&emsp; *`delete-expression`*\
56+
*`unary-operator`*: one of\
57+
&emsp; **`*`** **`&`** **`+`** **`-`** **`!`** **`~`**
6158

62-
Any *postfix-expression* is considered a *unary-expression*, and because any primary expression is considered a *postfix-expression*, any primary expressions is considered a *unary-expression* also. For more information, see [Postfix Expressions](../cpp/postfix-expressions.md) and [Primary Expressions](../cpp/primary-expressions.md).
59+
## Remarks
6360

64-
A *unary-operator* consists of one or more of the following symbols: `* & + - ! ~`
61+
Any *`postfix-expression`* is considered a *`unary-expression`*, and because any *`primary-expression`* is considered a *`postfix-expression`*, any *`primary-expression`* is considered a *`unary-expression`* also. For more information, see [Postfix expressions](../cpp/postfix-expressions.md) and [Primary expressions](../cpp/primary-expressions.md).
6562

66-
The *cast-expression* is a unary expression with an optional cast to change the type. For more information see [Cast Operator: ()](../cpp/cast-operator-parens.md).
63+
The *`cast-expression`* is a *`unary-expression`* with an optional cast to change the type. For more information, see [Cast operator: `()`](../cpp/cast-operator-parens.md).
6764

68-
An *expression* can be any expression. For more information, see [Expressions](../cpp/expressions-cpp.md).
65+
The *`noexcept-expression`* is a *`noexcept-specifier`* with a *`constant-expression`* argument. For more information, see [`noexcept`](../cpp/noexcept-cpp.md).
6966

70-
The *allocation-expression* refers to the **`new`** operator. The *deallocation-expression* refers to the **`delete`** operator. For more information, see the links earlier in this topic.
67+
The *`new-expression`* refers to the **`new`** operator. The *`delete-expression`* refers to the **`delete`** operator. For more information, see [`new` operator](../cpp/new-operator-cpp.md) and [`delete` operator](../cpp/delete-operator-cpp.md).
7168

7269
## See also
7370

74-
[Types of Expressions](../cpp/types-of-expressions.md)
71+
[Types of expressions](../cpp/types-of-expressions.md)

0 commit comments

Comments
 (0)