Skip to content

Commit 71e2465

Browse files
authored
Merge pull request #5955 from MicrosoftDocs/FromPublicMasterBranch
Confirm merge from FromPublicMasterBranch to main to sync with https://github.com/MicrosoftDocs/cpp-docs (branch main)
2 parents 3cfa3ce + 5d9aa8a commit 71e2465

11 files changed

+92
-67
lines changed

docs/c-runtime-library/find-memory-leaks-using-the-crt-library.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ _CrtMemCheckpoint( &s1 );
241241

242242
The `_CrtMemCheckpoint` function fills in the structure with a snapshot of the current memory state.
243243

244-
To output the contents of a `_CrtMemState` structure, pass the structure to the `_ CrtMemDumpStatistics` function:
244+
To output the contents of a `_CrtMemState` structure, pass the structure to the `_CrtMemDumpStatistics` function:
245245

246246
```cpp
247247
_CrtMemDumpStatistics( &s1 );

docs/c-runtime-library/reference/islower-iswlower-islower-l-iswlower-l.md

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
---
2-
description: "Learn more about: islower, iswlower, _islower_l, _iswlower_l"
32
title: "islower, iswlower, _islower_l, _iswlower_l"
4-
ms.date: "4/2/2020"
3+
description: "Learn more about: islower, iswlower, _islower_l, _iswlower_l"
4+
ms.date: 4/2/2020
55
api_name: ["iswlower", "_islower_l", "islower", "_iswlower_l", "_o_islower", "_o_iswlower"]
66
api_location: ["msvcrt.dll", "msvcr80.dll", "msvcr90.dll", "msvcr100.dll", "msvcr100_clr0400.dll", "msvcr110.dll", "msvcr110_clr0400.dll", "msvcr120.dll", "msvcr120_clr0400.dll", "ucrtbase.dll", "api-ms-win-crt-string-l1-1-0.dll", "ntoskrnl.exe"]
77
api_type: ["DLLExport"]
88
topic_type: ["apiref"]
99
f1_keywords: ["_istlower", "islower", "_ismbclower_l", "_liswlower_l", "_istlower_l", "_iswlower_l", "_islower _l", "_islower_l", "iswlower"]
1010
helpviewer_keywords: ["_islower _l function", "_ismbclower_l function", "islower function", "_iswlower_l function", "_liswlower_l function", "_istlower_l function", "istlower function", "_istlower function", "iswlower function", "_islower_l function"]
11-
ms.assetid: fcc3b70a-2b47-45fd-944d-e5c1942e6457
1211
---
1312
# `islower`, `iswlower`, `_islower_l`, `_iswlower_l`
1413

@@ -54,7 +53,7 @@ The behavior of **`islower`** and **`_islower_l`** is undefined if *`c`* isn't E
5453
| TCHAR.H routine | `_UNICODE` and `_MBCS` not defined | `_MBCS` defined | `_UNICODE` defined |
5554
|---|---|---|---|
5655
| `_istlower` | **`islower`** | [`_ismbclower`](ismbclower-ismbclower-l-ismbcupper-ismbcupper-l.md) | **`iswlower`** |
57-
| **`_istlower_l`** | `_islower _l` | [`_ismbclower_l`](ismbclower-ismbclower-l-ismbcupper-ismbcupper-l.md) | **`_liswlower_l`** |
56+
| **`_istlower_l`** | `_islower_l` | [`_ismbclower_l`](ismbclower-ismbclower-l-ismbcupper-ismbcupper-l.md) | **`_liswlower_l`** |
5857

5958
## Remarks
6059

@@ -64,10 +63,10 @@ By default, this function's global state is scoped to the application. To change
6463

6564
| Routine | Required header |
6665
|---|---|
67-
| **`islower`** | \<ctype.h> |
68-
| **`iswlower`** | \<ctype.h> or \<wchar.h> |
69-
| **`_islower_l`** | \<ctype.h> |
70-
| **`_swlower_l`** | \<ctype.h> or \<wchar.h> |
66+
| **`islower`** | `<ctype.h>` |
67+
| **`iswlower`** | `<ctype.h>` or `<wchar.h>` |
68+
| **`_islower_l`** | `<ctype.h>` |
69+
| **`_swlower_l`** | `<ctype.h>` or `<wchar.h>` |
7170

7271
For more compatibility information, see [Compatibility](../compatibility.md).
7372

docs/c-runtime-library/reference/mbsnbset-s-mbsnbset-s-l.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
---
2-
description: "Learn more about: _mbsnbset_s, _mbsnbset_s_l"
32
title: "_mbsnbset_s, _mbsnbset_s_l"
4-
ms.date: "4/2/2020"
3+
description: "Learn more about: _mbsnbset_s, _mbsnbset_s_l"
4+
ms.date: 4/2/2020
55
api_name: ["_mbsnbset_s_l", "_mbsnbset_s", "_o__mbsnbset_s", "_o__mbsnbset_s_l"]
66
api_location: ["msvcrt.dll", "msvcr80.dll", "msvcr90.dll", "msvcr100.dll", "msvcr100_clr0400.dll", "msvcr110.dll", "msvcr110_clr0400.dll", "msvcr120.dll", "msvcr120_clr0400.dll", "ucrtbase.dll", "api-ms-win-crt-multibyte-l1-1-0.dll"]
77
api_type: ["DLLExport"]
88
topic_type: ["apiref"]
99
f1_keywords: ["mbsnbset_s", "_mbsnbset_s_l", "_mbsnbset_s", "mbsnbset_s_l"]
1010
helpviewer_keywords: ["tcsnset_s function", "mbsnbset_s function", "mbsnbset_s_l function", "_mbsnbset_s_l function", "_tcsnset_s_l function", "_mbsnbset_s function", "_tcsnset_s function", "tcsnset_s_l function"]
11-
ms.assetid: 811f92c9-cc31-4bbd-8017-2d1bfc6fb96f
1211
---
1312
# `_mbsnbset_s`, `_mbsnbset_s_l`
1413

@@ -90,14 +89,14 @@ By default, this function's global state is scoped to the application. To change
9089
| Tchar.h routine | `_UNICODE` and `_MBCS` not defined | `_MBCS` defined | `_UNICODE` defined |
9190
|---|---|---|---|
9291
| `_tcsnset_s` | `_strnset_s` | **`_mbsnbset_s`** | `_wcsnset_s` |
93-
| `_tcsnset_s_l` | `_strnset_s _l` | **`_mbsnbset_s_l`** | `_wcsnset_s_l` |
92+
| `_tcsnset_s_l` | `_strnset_s_l` | **`_mbsnbset_s_l`** | `_wcsnset_s_l` |
9493

9594
## Requirements
9695

9796
| Routine | Required header |
9897
|---|---|
99-
| **`_mbsnbset_s`** | \<mbstring.h> |
100-
| **`_mbsnbset_s_l`** | \<mbstring.h> |
98+
| **`_mbsnbset_s`** | `<mbstring.h>` |
99+
| **`_mbsnbset_s_l`** | `<mbstring.h>` |
101100

102101
For more compatibility information, see [Compatibility](../compatibility.md).
103102

docs/dotnet/hosting-a-windows-form-user-control-as-an-mfc-dialog-box.md

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,22 @@
11
---
2-
description: "Learn more about: Hosting a Windows Form User Control as an MFC Dialog Box"
32
title: "Hosting a Windows Form User Control as an MFC Dialog Box"
4-
ms.date: "11/04/2016"
3+
description: "Learn more about: Hosting a Windows Form User Control as an MFC Dialog Box"
4+
ms.date: 11/04/2016
55
helpviewer_keywords: ["MFC [C++], Windows Forms support", "Windows Forms [C++], hosting as MFC Dialog", "hosting Windows Forms control [C++]"]
6-
ms.assetid: 0434a9d7-8b14-48e6-ad69-9ba9a684677a
76
---
87
# Hosting a Windows Form User Control as an MFC Dialog Box
98

10-
MFC provides the template class [CWinFormsDialog](../mfc/reference/cwinformsdialog-class.md) so that you can host a Windows Forms user control (<xref:System.Windows.Forms.UserControl>) in a modal or modeless MFC dialog box. `CWinFormsDialog` is derived from the MFC class [CDialog](../mfc/reference/cdialog-class.md), so the dialog box can be launched as modal or modeless.
9+
MFC provides the template class [`CWinFormsDialog`](../mfc/reference/cwinformsdialog-class.md) so that you can host a Windows Forms user control (<xref:System.Windows.Forms.UserControl>) in a modal or modeless MFC dialog box. `CWinFormsDialog` is derived from the MFC class [`CDialog`](../mfc/reference/cdialog-class.md), so the dialog box can be launched as modal or modeless.
1110

12-
The process that `CWinFormsDialog` uses to host the user control is the similar to that described in [Hosting a Windows Form User Control in an MFC Dialog Box](../dotnet/hosting-a-windows-form-user-control-in-an-mfc-dialog-box.md). However, `CWinFormsDialog` manages the initialization and hosting of the user control so that it does not have to be programmed manually.
11+
The process that `CWinFormsDialog` uses to host the user control is similar to that described in [Hosting a Windows Form User Control in an MFC Dialog Box](hosting-a-windows-form-user-control-in-an-mfc-dialog-box.md). However, `CWinFormsDialog` manages the initialization and hosting of the user control so that it does not have to be programmed manually.
1312

1413
### To create the MFC host application
1514

1615
1. Create an MFC Application project.
1716

1817
On the **File** menu, select **New**, and then click **Project**. In the **Visual C++** folder, select **MFC Application**.
1918

20-
In the **Name** box, enter `MFC03` and change the Solution setting to **Add to Solution**.Click **OK**.
19+
In the **Name** box, enter `MFC03` and change the Solution setting to **Add to Solution**. Click **OK**.
2120

2221
In the **MFC Application Wizard**, accept all the defaults, and then click **Finish**. This creates an MFC application with a Multiple Document Interface.
2322

@@ -29,21 +28,21 @@ The process that `CWinFormsDialog` uses to host the user control is the similar
2928

3029
1. Add a reference to the .NET control.
3130

32-
In **Solution Explorer**, right-click the **MFC03** project node and choose **Add**, **References**. In the **Property Page**, click **Add New Reference**, select WindowsControlLibrary1 (under the **Projects** tab), and click **OK**. This adds a reference in the form of a [/FU](../build/reference/fu-name-forced-hash-using-file.md) compiler option so that the program will compile; it also copies WindowsControlLibrary1.dll into the `MFC03` project directory so that the program will run.
31+
In **Solution Explorer**, right-click the **MFC03** project node and choose **Add**, **References**. In the **Property Page**, click **Add New Reference**, select WindowsControlLibrary1 (under the **Projects** tab), and click **OK**. This adds a reference in the form of a [`/FU`](../build/reference/fu-name-forced-hash-using-file.md) compiler option so that the program will compile; it also copies `WindowsControlLibrary1.dll` into the `MFC03` project directory so that the program will run.
3332

3433
1. Add `#include <afxwinforms.h>` to *pch.h* (*stdafx.h* in Visual Studio 2017 and earlier), at the end of the existing `#include` statements.
3534

3635
1. Add a new class that subclasses `CDialog`.
3736

38-
Right click on project name and add an MFC class (called CHostForWinForm) that subclasses `CDialog`. Since you do not need the dialog box resource, you can delete the resource ID (select **Resource View**, expand the **Dialog** folder and delete `IDD_HOSTFORWINFORM` resource. Then, remove any references to the ID in code.).
37+
Right click on project name and add an MFC class (called `CHostForWinForm`) that subclasses `CDialog`. Since you do not need the dialog box resource, you can delete the resource ID (select **Resource View**, expand the **Dialog** folder and delete `IDD_HOSTFORWINFORM` resource. Then, remove any references to the ID in code.).
3938

40-
1. Replace `CDialog` in CHostForWinForm.h and CHostForWinForm.cpp files with `CWinFormsDialog<WindowsControlLibrary1::UserControl1>`.
39+
1. Replace `CDialog` in `CHostForWinForm.h` and `CHostForWinForm.cpp` files with `CWinFormsDialog<WindowsControlLibrary1::UserControl1>`.
4140

42-
1. Call DoModal on the CHostForWinForm class.
41+
1. Call `DoModal` on the `CHostForWinForm` class.
4342

44-
In MFC03.cpp, add `#include "HostForWinForm.h"`.
43+
In `MFC03.cpp`, add `#include "HostForWinForm.h"`.
4544

46-
Before the return statement in the definition of CMFC03App::InitInstance, add:
45+
Before the return statement in the definition of `CMFC03App::InitInstance`, add:
4746

4847
```cpp
4948
CHostForWinForm m_HostForWinForm;
@@ -58,15 +57,15 @@ The process that `CWinFormsDialog` uses to host the user control is the similar
5857

5958
Next you will add code to monitor the state of a control on the Windows Forms from the MFC application.
6059

61-
1. Add a handler for OnInitDialog.
60+
1. Add a handler for `OnInitDialog`.
6261

63-
Display the **Properties** window (F4). In **Class View**, select CHostForWinForm. In the **Properties** window, select overrides and in the row for OnInitDialog, click in the left hand column and select \< Add >. This adds the following line to CHostForWinForm.h:
62+
Display the **Properties** window (F4). In **Class View**, select `CHostForWinForm`. In the **Properties** window, select overrides and in the row for `OnInitDialog`, click in the left hand column and select \< Add >. This adds the following line to `CHostForWinForm.h`:
6463

6564
```cpp
6665
virtual BOOL OnInitDialog();
6766
```
6867

69-
1. Define OnInitDialog (in CHostForWinForm.cpp) as follows:
68+
1. Define `OnInitDialog` (in `CHostForWinForm.cpp`) as follows:
7069

7170
```cpp
7271
BOOL CHostForWinForm::OnInitDialog() {
@@ -76,7 +75,7 @@ The process that `CWinFormsDialog` uses to host the user control is the similar
7675
}
7776
```
7877

79-
1. Next add the OnButton1 handler. Add the following lines to the public section of the CHostForWinForm class in CHostForWinForm.h:
78+
1. Next add the `OnButton1` handler. Add the following lines to the public section of the `CHostForWinForm` class in `CHostForWinForm.h`:
8079

8180
```cpp
8281
virtual void OnButton1( System::Object^ sender, System::EventArgs^ e );
@@ -86,7 +85,7 @@ The process that `CWinFormsDialog` uses to host the user control is the similar
8685
END_DELEGATE_MAP()
8786
```
8887

89-
In CHostForWinForm.cpp, add this definition:
88+
In `CHostForWinForm.cpp`, add this definition:
9089

9190
```cpp
9291
void CHostForWinForm::OnButton1( System::Object^ sender, System::EventArgs^ e )
@@ -99,13 +98,13 @@ The process that `CWinFormsDialog` uses to host the user control is the similar
9998

10099
Next you will add code to display from the MFC code the value in the text box on the Windows Form.
101100

102-
1. In the public section of the CHostForWinForm class in CHostForWinForm.h, add the following declaration:
101+
1. In the public section of the `CHostForWinForm` class in `CHostForWinForm.h`, add the following declaration:
103102

104103
```cpp
105104
CString m_sEditBoxOnWinForm;
106105
```
107106

108-
1. In the definition of DoDataExchange in CHostForWinForm.cpp, add the following three lines to the end of the function:
107+
1. In the definition of `DoDataExchange` in `CHostForWinForm.cpp`, add the following four lines to the end of the function:
109108

110109
```cpp
111110
if (pDX->m_bSaveAndValidate)
@@ -114,7 +113,7 @@ The process that `CWinFormsDialog` uses to host the user control is the similar
114113
GetControl()->textBox1->Text = gcnew System::String(m_sEditBoxOnWinForm);
115114
```
116115

117-
1. In the definition of OnButton1 in CHostForWinForm.cpp, add the following three lines to the end of the function:
116+
1. In the definition of `OnButton1` in `CHostForWinForm.cpp`, add the following three lines to the end of the function:
118117

119118
```cpp
120119
this->UpdateData(TRUE);
@@ -126,5 +125,5 @@ The process that `CWinFormsDialog` uses to host the user control is the similar
126125

127126
## See also
128127

129-
<xref:System.Windows.Forms.UserControl?displayProperty=fullName>
130-
[Using a Windows Form User Control in MFC](../dotnet/using-a-windows-form-user-control-in-mfc.md)
128+
<xref:System.Windows.Forms.UserControl?displayProperty=fullName>\
129+
[Using a Windows Form User Control in MFC](using-a-windows-form-user-control-in-mfc.md)

docs/error-messages/compiler-errors-1/fatal-error-C1015.md renamed to docs/error-messages/compiler-errors-1/fatal-error-c1015.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
2-
description: "Learn more about: Fatal Error C1015"
32
title: "Fatal Error C1015"
3+
description: "Learn more about: Fatal Error C1015"
44
ms.date: 08/17/2022
55
f1_keywords: ["C1015"]
66
helpviewer_keywords: ["C1015"]
Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,30 @@
11
---
2-
description: "Learn more about: Compiler Error C2574"
32
title: "Compiler Error C2574"
4-
ms.date: "11/04/2016"
3+
description: "Learn more about: Compiler Error C2574"
4+
ms.date: 06/04/2025
55
f1_keywords: ["C2574"]
66
helpviewer_keywords: ["C2574"]
7-
ms.assetid: 3e1c5c18-ee8b-4dbb-bfc0-d3b8991af71b
87
---
98
# Compiler Error C2574
109

11-
'destructor' : cannot be declared static
10+
> '*function*': cannot be declared static
11+
12+
## Remarks
1213

13-
Neither destructors nor constructors can be declared **`static`**.
14+
Neither [constructors](../../cpp/constructors-cpp.md) nor [destructors](../../cpp/destructors-cpp.md) can be declared **`static`**.
1415

15-
The following sample generates C2574:
16+
## Example
17+
18+
The following example generates C2574:
1619

1720
```cpp
1821
// C2574.cpp
1922
// compile with: /c
20-
class A {
21-
virtual static ~A(); // C2574
22-
// try the following line instead
23-
// virtual ~A();
23+
struct S
24+
{
25+
static S() {} // C2574
26+
27+
// Try the following line instead:
28+
// S() {}
2429
};
2530
```
Lines changed: 35 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,51 @@
11
---
2-
description: "Learn more about: Compiler Error C2601"
32
title: "Compiler Error C2601"
4-
ms.date: "11/04/2016"
3+
description: "Learn more about: Compiler Error C2601"
4+
ms.date: 06/04/2025
55
f1_keywords: ["C2601"]
66
helpviewer_keywords: ["C2601"]
7-
ms.assetid: 88275582-5f37-45d7-807d-05f06ba00965
87
---
98
# Compiler Error C2601
109

11-
'function' : local function definitions are illegal
10+
> '*function*': local function definitions are illegal
11+
12+
## Remarks
1213

1314
Code tries to define a function within a function.
1415

15-
Or, there may be an extra brace in your source code before the location of the C2601 error.
16+
Or, there may be an extra/missing brace before the location of the C2601 error.
1617

17-
The following sample generates C2601:
18+
## Examples
19+
20+
### Define function within a function
21+
22+
[Lambda Expressions](../../cpp/lambda-expressions-in-cpp.md) may be used to emulate the behavior of local functions:
1823

1924
```cpp
20-
// C2601.cpp
21-
int main() {
22-
int i = 0;
25+
// C2601a.cpp
26+
int main()
27+
{
28+
int increment(int value) // C2601
29+
{
30+
return value + 1;
31+
}
32+
33+
// Try the following line instead:
34+
// auto increment = [](int value) { return value + 1; };
2335

24-
void funcname(int j) { // C2601
25-
j++;
26-
}
36+
int two = increment(1);
2737
}
2838
```
39+
40+
### Missing closing brace
41+
42+
If a preceding function is missing a closing brace, the subsequent function is taken to be a local function:
43+
44+
```cpp
45+
// C2601b.cpp
46+
void func()
47+
{
48+
// missing '}' brace here
49+
50+
int main() {} // C2601
51+
```

docs/error-messages/compiler-errors-2/compiler-errors-c2500-through-c2599.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
2-
description: "Learn more about: Compiler errors C2500 Through C2599"
32
title: "Compiler errors C2500 Through C2599"
4-
ms.date: "04/21/2019"
3+
description: "Learn more about: Compiler errors C2500 Through C2599"
4+
ms.date: 04/21/2019
55
f1_keywords: ["C2501", "C2508", "C2515", "C2519", "C2520", "C2522", "C2525", "C2527", "C2536", "C2538", "C2539", "C2546", "C2547", "C2559", "C2560", "C2564", "C2565", "C2576", "C2578", "C2580", "C2590", "C2591", "C2595", "C2596"]
66
helpviewer_keywords: ["C2501", "C2508", "C2515", "C2519", "C2520", "C2522", "C2525", "C2527", "C2536", "C2538", "C2539", "C2546", "C2547", "C2559", "C2560", "C2564", "C2565", "C2576", "C2578", "C2580", "C2590", "C2591", "C2595", "C2596"]
77
---
@@ -89,7 +89,7 @@ The articles in this section of the documentation explain a subset of the error
8989
|[Compiler error C2571](compiler-error-C2571.md)|'*identifier*': virtual function cannot be in union '*union*'|
9090
|[Compiler error C2572](compiler-error-C2572.md)|'*function*': redefinition of default argument: parameter *number*|
9191
|[Compiler error C2573](compiler-error-C2573.md)|'*class*': cannot delete pointers to objects of this type; the class has no non-placement overload for 'operator delete'. Use ::delete, or add 'operator delete(void*)' to the class|
92-
|[Compiler error C2574](compiler-error-C2574.md)|'*destructor*': cannot be declared static|
92+
|[Compiler error C2574](compiler-error-C2574.md)|'*function*': cannot be declared static|
9393
|[Compiler error C2575](compiler-error-C2575.md)|'*identifier*': only member functions and bases can be virtual|
9494
|Compiler error C2576|'*identifier*': cannot introduce a new virtual method as 'public'. Consider making the method non-virtual, or change the accessibility to 'internal' or 'protected private'|
9595
|[Compiler error C2577](compiler-error-C2577.md)|'*identifier*': a destructor/finalizer cannot have a return type|

docs/mfc/reference/colecontrolsite-class.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -721,7 +721,7 @@ LPOLEOBJECT m_pObject;
721721

722722
## <a name="m_pwindowlessobject"></a> COleControlSite::m_pWindowlessObject
723723

724-
Contains the `IOleInPlaceObjectWindowless`[IOleInPlaceObjectWindowless](/windows/win32/api/ocidl/nn-ocidl-ioleinplaceobjectwindowless) interface of the control.
724+
Contains the [`IOleInPlaceObjectWindowless`](/windows/win32/api/ocidl/nn-ocidl-ioleinplaceobjectwindowless) interface of the control.
725725

726726
```
727727
IOleInPlaceObjectWindowless* m_pWindowlessObject;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ A partial list of new features:
220220
- **Standard Library Enhancements**
221221
- The formatted output implementation now includes `std::range_formatter` and formatters for `std::pair` and `std::tuple`.
222222
- Added support for `std::println()` with no arguments. This prints a blank line as proposed in [P3142R0](https://wg21.link/P3142R0).
223-
- Improved vectorization for several algorithms including `replace_copy()`, `replace_copy_if()`, `ranges::replace_copy`, `ranges::replace_copy_if`, `find_first_of()` and `ranges::find_first_of`, for 8-bit and 16-bit elements, `mismatch()`, `ranges::mismatch`, `count()` `ranges::count`, `find()`, `ranges::find`, `ranges::find_last`, and `ranges::iota`.
223+
- Improved vectorization for several algorithms including `replace_copy()`, `replace_copy_if()`, `ranges::replace_copy`, `ranges::replace_copy_if`, `find_first_of()` and `ranges::find_first_of`, for 8-bit and 16-bit elements, `mismatch()`, `ranges::mismatch`, `count()`, `ranges::count`, `find()`, `ranges::find`, `ranges::find_last`, and `ranges::iota`.
224224

225225
- **Game development in C++**
226226
- You can now add common Unreal Engine class templates, modules, and plugins from within Visual Studio. For more information, see [Add Unreal Engine classes, modules, and plugins in Visual Studio](/visualstudio/gamedev/unreal/get-started/vs-tools-unreal-add-class-module-plugin).

0 commit comments

Comments
 (0)