Skip to content

Commit 83a396e

Browse files
authored
Merge pull request #3513 from MicrosoftDocs/master
4/16/2021 AM Publish
2 parents d531c56 + c8ed2ae commit 83a396e

29 files changed

+237
-196
lines changed

docs/assembler/masm/masm-bnf-grammar.md

Lines changed: 72 additions & 57 deletions
Large diffs are not rendered by default.

docs/atl/reference/ccombstr-class.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ class CComBSTR
5353
|Name|Description|
5454
|----------|-----------------|
5555
|[CComBSTR::operator BSTR](#operator_bstr)|Casts a `CComBSTR` object to a BSTR.|
56-
|[CComBSTR::operator !](#operator_not)|Returns TRUE or FALSE, depending on whether `m_str`is NULL.|
56+
|[CComBSTR::operator !](#operator_not)|Returns TRUE or FALSE, depending on whether `m_str` is NULL.|
5757
|[CComBSTR::operator !=](#operator_neq)|Compares a `CComBSTR` with a string.|
5858
|[CComBSTR::operator &](#operator_amp)|Returns the address of `m_str`.|
5959
|[CComBSTR::operator +=](#operator_add_eq)|Appends a `CComBSTR` to the object.|

docs/build/cmake-presets-vs.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,15 +123,15 @@ In the example above:
123123
- **192.168.0.5** is a remote Linux system that was added to the **Connection Manager**.
124124
- **ubuntu2004** and **debian** are WSL installations.
125125

126-
Select **Manage Connections** to open the **Connection Manager**.
126+
Select **Manage Connections** to open the **Connection Manager**.
127127

128128
### Select a Configure Preset
129129

130130
The dropdown in the middle indicates the active **Configure Preset**. It's the `configurePreset` that's used when CMake is invoked to generate the project build system. This dropdown lists the union of non-hidden Configure Presets defined in `CMakePresets.json` and `CMakeUserPresets.json`.
131131

132132
Visual Studio will use the value of `hostOS` in the Microsoft Visual Studio Settings vendor map to hide Configure Presets that don't apply to the active Target System. For more information, see the entry for `hostOS` in the table under [Visual Studio Settings vendor map](cmake-presets-json-reference.md#visual-studio-settings-vendor-map).
133133

134-
Select **Manage Configurations** to open the `CMakePresets.json` file located at the root of the project. `CMakePresets.json` is created if it doesn't already exist.
134+
Select **Manage Configurations** to open the `CMakePresets.json` file located at the root of the project. `CMakePresets.json` is created if it doesn't already exist.
135135

136136
### Select a Build Preset
137137

@@ -169,7 +169,7 @@ Use a forward slash (`/`) for paths in `CMakePresets.json` and `CMakeUserPresets
169169

170170
### Add new Configure Presets
171171

172-
To add a new Configure Preset to `CMakePresets.json`, from **Solution Explorer** right-click `CMakePresets.json` from **Folder View** and select **Add Configure Preset** from the context menu. The dialog to select a Configure Preset template appears:
172+
To add a new Configure Preset to `CMakePresets.json`, from **Solution Explorer** right-click `CMakePresets.json` from **Folder View** and select **Add Configure Preset** from the context menu. The dialog to select a Configure Preset template appears:
173173

174174
![Add configure preset to `CMakePresets.json` dialog](./media/add-configure-preset-to-cmakepresets.png)
175175

docs/build/reference/module-exportheader.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,13 @@ You may find it helpful to use the complementary option **`/showResolvedHeader`*
4242
To build a header unit such as `<vector>` might look like:
4343

4444
```cmd
45-
cl /std:c++latest /exportHeader /headerName:angle vector
45+
cl . . . /std:c++latest /exportHeader /headerName:angle vector
4646
```
4747

4848
Building a local project header such as `"utils/util.h"` might look like:
4949

5050
```cmd
51-
cl /std:c++latest /exportHeader /headerName:quote util/util.h
51+
cl . . . /std:c++latest /exportHeader /headerName:quote util/util.h
5252
```
5353

5454
### To set this compiler option in the Visual Studio development environment

docs/build/reference/sourcedependencies-directives.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ This command-line option is similar to [`/sourceDependencies`](sourcedependencie
1919
- The output JSON file doesn't list imported modules and imported header units (*`.ifc`* files) because this switch does a scan of the project files, not a compilation. So there are no built modules or header units to list.
2020
- Only directly imported modules or header units are listed. It doesn't list the dependencies of the imported modules or header units themselves.
2121
- Header file dependencies are not listed. That is, `#include <file>` or `#include "file"` dependencies are not listed.
22-
- `/sourceDependencies:directives`is meant to be used before *`.ifc`* files are built.
22+
- `/sourceDependencies:directives` is meant to be used before *`.ifc`* files are built.
2323

2424
## Syntax
2525

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,42 @@
11
---
2-
description: "Learn more about: /vmb, /vmg (Representation Method)"
2+
description: "Learn more about: /vmb, /vmg (Representation method)"
33
title: "/vmb, /vmg (Representation Method)"
4-
ms.date: "11/04/2016"
4+
ms.date: 04/12/2021
55
f1_keywords: ["/vmb", "/vmg"]
66
helpviewer_keywords: ["vmb compiler option [C++]", "-vmg compiler option [C++]", "vmg compiler option [C++]", "-vmb compiler option [C++]", "/vmb compiler option [C++]", "representation method compiler options [C++]", "/vmg compiler option [C++]"]
7-
ms.assetid: ecdb391c-7dab-40b1-916b-673d10889fd4
87
---
9-
# /vmb, /vmg (Representation Method)
8+
# `/vmb`, `/vmg` (Representation method)
109

1110
Select the method that the compiler uses to represent pointers to class members.
1211

13-
Use **/vmb** if you always define a class before you declare a pointer to a member of the class.
12+
## Syntax
1413

15-
Use **/vmg** to declare a pointer to a member of a class before defining the class. This need can arise if you define members in two different classes that reference each other. For such mutually referencing classes, one class must be referenced before it is defined.
14+
> **`/vmb`**\
15+
> **`/vmg`**
1616
17-
## Syntax
17+
### Options
1818

19-
```
20-
/vmb
21-
/vmg
22-
```
19+
**`/vmb`** is the compiler's default behavior. Its behavior is the same as `#pragma pointers_to_members(best_case)`. It doesn't require or ensure complete types. For complete types, it uses the best representation among single, multiple, or virtual inheritance based the inheritance of the class type. For incomplete types, it uses the largest, most general representation.
20+
21+
**`/vmg`** lets you specify compiler behavior in combination with [`/vmm`, `/vms`, `/vmv` (General purpose representation)](./vmm-vms-vmv-general-purpose-representation.md) to declare a pointer to a member of a class before defining the class. This need can arise if you define members in two different classes that reference each other. For such mutually referencing classes, one class must be referenced before it's defined.
2322

2423
## Remarks
2524

26-
You can also use [pointers_to_members](../../preprocessor/pointers-to-members.md) or [Inheritance Keywords](../../cpp/inheritance-keywords.md) in your code to specify a pointer representation.
25+
You can also use [`#pragma pointers_to_members`](../../preprocessor/pointers-to-members.md) or [Inheritance keywords](../../cpp/inheritance-keywords.md) in your code to specify a pointer representation.
2726

2827
### To set this compiler option in the Visual Studio development environment
2928

3029
1. Open the project's **Property Pages** dialog box. For details, see [Set C++ compiler and build properties in Visual Studio](../working-with-project-properties.md).
3130

32-
1. Click the **C/C++** folder.
33-
34-
1. Click the **Command Line** property page.
31+
1. Select the **Configuration Properties** > **C/C++** > **Command Line** property page.
3532

36-
1. Type the compiler option in the **Additional Options** box.
33+
1. Enter the compiler option in the **Additional Options** box.
3734

3835
### To set this compiler option programmatically
3936

4037
- See <xref:Microsoft.VisualStudio.VCProjectEngine.VCCLCompilerTool.AdditionalOptions%2A>.
4138

4239
## See also
4340

44-
[MSVC Compiler Options](compiler-options.md)<br/>
45-
[MSVC Compiler Command-Line Syntax](compiler-command-line-syntax.md)
41+
[MSVC compiler options](compiler-options.md)<br/>
42+
[MSVC compiler command-line syntax](compiler-command-line-syntax.md)
Lines changed: 39 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,66 @@
11
---
22
description: "Learn more about: /vmm, /vms, /vmv (General Purpose Representation)"
3-
title: "/vmm, -vms, -vmv (General Purpose Representation)"
4-
ms.date: "11/04/2016"
3+
title: "/vmm, /vms, /vmv (General Purpose Representation)"
4+
ms.date: 04/12/2021
55
f1_keywords: ["/vms", "/vmm", "/vmv"]
66
helpviewer_keywords: ["Virtual Inheritance compiler option", "general purpose representation compiler options", "vms compiler option [C++]", "vmm compiler option [C++]", "/vmm compiler option [C++]", "-vmm compiler option [C++]", "-vms compiler option [C++]", "/vms compiler option [C++]", "vmv compiler option [C++]", "/vmv compiler option [C++]", "Single Inheritance compiler option", "-vmv compiler option [C++]"]
7-
ms.assetid: 0fcd7ae0-3031-4c62-a2a8-e154c8685dae
87
---
9-
# /vmm, /vms, /vmv (General Purpose Representation)
8+
# `/vmm`, `/vms`, `/vmv` (General Purpose Representation)
109

11-
Used when [/vmb, /vmg (Representation Method)](vmb-vmg-representation-method.md) is selected as the [representation method](vmb-vmg-representation-method.md). These options indicate the inheritance model of the not-yet-encountered class definition.
10+
Used when [`/vmg`](vmb-vmg-representation-method.md) is selected as the [representation method](vmb-vmg-representation-method.md). These options indicate the inheritance model of the not-yet-encountered class definition.
1211

1312
## Syntax
1413

15-
```
16-
/vmm
17-
/vms
18-
/vmv
19-
```
14+
> **`/vmm`**\
15+
> **`/vms`**\
16+
> **`/vmv`**
2017
21-
## Remarks
18+
### Options
19+
20+
**`/vmm`**\
21+
Specifies the most general representation of a pointer to a member of a class as one that uses multiple inheritance.
22+
23+
The corresponding [inheritance keyword](../../cpp/inheritance-keywords.md) and argument to [`#pragma pointers_to_members`](../../preprocessor/pointers-to-members.md) is **`multiple_inheritance`**.
24+
25+
This representation is larger than the one required for single inheritance.
26+
27+
If you use **`/vmm`** and declare a pointer to member of a class that has a virtual inheritance model, the compiler generates an error.
28+
29+
**`/vms`**\
30+
Specifies the most general representation of a pointer to a member of a class as one that uses either no inheritance or single inheritance.The corresponding [inheritance keyword](../../cpp/inheritance-keywords.md) and argument to [`#pragma pointers_to_members`](../../preprocessor/pointers-to-members.md) is **`single_inheritance`**.
2231

23-
The options are described in the following table.
32+
This option generates the smallest possible representation of a pointer to a member of a class.
33+
34+
If you use **`/vms`** and declare a pointer to member of a class that has a multiple or virtual inheritance model, the compiler generates an error.
35+
36+
**`/vmv`**\
37+
Specifies the most general representation of a pointer to a member of a class as one that uses virtual inheritance. This pointer representation never causes an error and is the default.
38+
39+
The corresponding [inheritance keyword](../../cpp/inheritance-keywords.md) and argument to [`#pragma pointers_to_members`](../../preprocessor/pointers-to-members.md) is **`virtual_inheritance`**.
40+
41+
This option requires a larger pointer and more code to interpret the pointer than the other options.
42+
43+
## Remarks
2444

25-
|Option|Description|
26-
|------------|-----------------|
27-
|**/vmm**|Specifies the most general representation of a pointer to a member of a class to be one that uses multiple inheritance.<br /><br /> The corresponding [inheritance keyword](../../cpp/inheritance-keywords.md) and argument to [#pragma pointers_to_members](../../preprocessor/pointers-to-members.md) is **multiple_inheritance**.<br /><br /> This representation is larger than that required for single inheritance.<br /><br /> If the inheritance model of a class definition for which a pointer to a member is declared is virtual, the compiler generates an error.|
28-
|**/vms**|Specifies the most general representation of a pointer to a member of a class to be one that uses either no inheritance or single inheritance.<br /><br /> The corresponding [inheritance keyword](../../cpp/inheritance-keywords.md) and argument to [#pragma pointers_to_members](../../preprocessor/pointers-to-members.md) is **single_inheritance**.<br /><br /> This is the smallest possible representation of a pointer to a member of a class.<br /><br /> If the inheritance model of a class definition for which a pointer to a member is declared is multiple or virtual, the compiler generates an error.|
29-
|**/vmv**|Specifies the most general representation of a pointer to a member of a class to be one that uses virtual inheritance. It never causes an error and is the default.<br /><br /> The corresponding [inheritance keyword](../../cpp/inheritance-keywords.md) and argument to [#pragma pointers_to_members](../../preprocessor/pointers-to-members.md) is **virtual_inheritance**.<br /><br /> This option requires a larger pointer and additional code to interpret the pointer than the other options.|
45+
In Visual Studio 2019 and earlier versions, Microsoft uses different representations (of different sizes) for pointer-to-member types. Pointers to members of classes that have no inheritance or single inheritance have the smallest representation. Pointers to members of classes that have multiple inheritance are larger. Pointers to members of classes that have virtual inheritance are the largest. When no representation model is specified to the compiler, it defaults to using the largest, most general representation.
3046

31-
When you specify one of these inheritance-model options, that model is used for all pointers to class members, regardless of their inheritance type or whether the pointer is declared before or after the class. Therefore, if you always use single-inheritance classes, you can reduce code size by compiling with **/vms**; however, if you want to use the most general case (at the expense of the largest data representation), compile with **/vmv**.
47+
When you specify one of these inheritance-model options, that model gets used for all pointers to class members, no matter their inheritance type or whether you declare the pointer before or after the class. If you always use single-inheritance classes, you can reduce code size by compiling with **`/vms`**. However, if you want to use the most general case (at the expense of the largest data representation), compile with **`/vmv`**.
3248

3349
### To set this compiler option in the Visual Studio development environment
3450

3551
1. Open the project's **Property Pages** dialog box. For details, see [Set C++ compiler and build properties in Visual Studio](../working-with-project-properties.md).
3652

37-
1. Click the **C/C++** folder.
53+
1. Select the **Configuration Properties** > **C/C++** > **Command Line** property page.
3854

39-
1. Click the **Command Line** property page.
55+
1. Enter the compiler option in the **Additional Options** box.
4056

41-
1. Type the compiler option in the **Additional Options** box.
4257

4358
### To set this compiler option programmatically
4459

4560
- See <xref:Microsoft.VisualStudio.VCProjectEngine.VCCLCompilerTool.AdditionalOptions%2A>.
4661

4762
## See also
4863

49-
[/vmb, /vmg (Representation Method)](vmb-vmg-representation-method.md)<br/>
50-
[MSVC Compiler Options](compiler-options.md)<br/>
51-
[MSVC Compiler Command-Line Syntax](compiler-command-line-syntax.md)
64+
[`/vmb`, `/vmg` (Representation method)](vmb-vmg-representation-method.md)<br/>
65+
[MSVC compiler options](compiler-options.md)<br/>
66+
[MSVC compiler command-line syntax](compiler-command-line-syntax.md)

docs/c-runtime-library/reference/exp-expf.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,5 +93,5 @@ exp( 2.302585 ) = 10.000000
9393
## See also
9494
9595
[Floating-Point Support](../../c-runtime-library/floating-point-support.md)\
96-
[l`og, logf, log10, log10f`](log-logf-log10-log10f.md)\
97-
[`_CIexp`](../../c-runtime-library/ciexp.md)
96+
[`log, logf, log10, log10f`](log-logf-log10-log10f.md)\
97+
[`_CIexp`](../../c-runtime-library/ciexp.md)

docs/c-runtime-library/reference/fmod-fmodf.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,5 +95,5 @@ The remainder of -10.00 / 3.00 is -1.000000
9595
[Floating-Point Support](../../c-runtime-library/floating-point-support.md)\
9696
[`ceil, ceilf, ceill`](ceil-ceilf-ceill.md)\
9797
[`fabs, fabsf, fabsl`](fabs-fabsf-fabsl.md)\
98-
[f`loor, floorf, floorl`](floor-floorf-floorl.md)\
99-
[`_CIfmod`](../../c-runtime-library/cifmod.md)
98+
[`floor, floorf, floorl`](floor-floorf-floorl.md)\
99+
[`_CIfmod`](../../c-runtime-library/cifmod.md)

0 commit comments

Comments
 (0)