Skip to content

Commit 6640a28

Browse files
TylerMSFTTylerMSFT
authored andcommitted
remove duplicated section
1 parent dc4fc06 commit 6640a28

File tree

1 file changed

+1
-106
lines changed

1 file changed

+1
-106
lines changed

docs/overview/cpp-conformance-improvements.md

Lines changed: 1 addition & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "C++ conformance improvements in Visual Studio 2022"
33
description: "Microsoft C++ in Visual Studio is improving standards conformance and fixing bugs regularly."
4-
ms.date: 11/14/2023
4+
ms.date: 12/07/2023
55
ms.technology: "cpp-language"
66
---
77
# C++ Conformance improvements, behavior changes, and bug fixes in Visual Studio 2022
@@ -119,111 +119,6 @@ namespace Gui
119119
}
120120
```
121121

122-
## <a name="improvements_178"></a> Conformance improvements in Visual Studio 2022 version 17.8
123-
124-
Visual Studio 2022 version 17.8 contains the following conformance improvements, bug fixes, and behavior changes in the Microsoft C/C++ compiler.
125-
126-
### /FU issues an error
127-
128-
The C compiler used to accept the `/FU` option, even though it hasn't support managed compilation for some time. It now issues an error. Projects that pass this option need to restrict it to C++/CLI projects only.
129-
130-
### C++ Standard Library
131-
132-
The C++23 named modules `std` and `std.compat` are now available when compiling with `/std:c++20`.
133-
134-
For a broader summary of changes made to the C++ Standard Library, see [STL Changelog VS 2022 17.8](https://github.com/microsoft/STL/wiki/Changelog#vs-2022-178-preview-3).
135-
136-
## <a name="improvements_177"></a> Conformance improvements in Visual Studio 2022 version 17.7
137-
138-
Visual Studio 2022 version 17.7 contains the following highlighted conformance improvements, bug fixes, and behavior changes in the Microsoft C/C++ compiler.
139-
140-
### Added `/std:clatest` to the C compiler
141-
142-
This switch behaves like the `/std:c++latest` switch for the C++ compiler. The switch enables all currently implemented compiler and standard library features proposed for the next draft C standard, as well as some in-progress and experimental features.
143-
144-
### C++ Standard Library
145-
146-
The `<print>` library is now supported. See [P2093R14 Formatted output](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2093r14.html).
147-
148-
Implemented `views::cartesian_product`.
149-
150-
For a broader summary of changes made to the Standard Template Library, see [STL Changelog VS 2022 17.7](https://github.com/microsoft/STL/wiki/Changelog#vs-2022-177).
151-
152-
### `using` conformance
153-
154-
Previously, the `using` directive could cause names from used namespaces to remain visible when they shouldn't. This could cause unqualified name lookup to find a name in a namespace even when there's no `using` directive active.
155-
156-
Here are some examples of the new and old behavior.\
157-
References in the following comments to "(1)" mean the call to `f<K>(t)` in namespace `A`:
158-
159-
```cpp
160-
namespace A
161-
{
162-
template<typename K, typename T>
163-
auto f2(T t)
164-
{
165-
return f<K>(t); // (1) Unqualified lookup should not find anything
166-
}
167-
}
168-
169-
namespace B
170-
{
171-
template<typename K, typename T>
172-
auto f(T t) noexcept
173-
{ // Previous behavior: This function was erroneously found during unqualified lookup at (1)
174-
return A::f2<K>(t);
175-
}
176-
}
177-
178-
namespace C
179-
{
180-
template<typename T>
181-
struct S {};
182-
183-
template<typename, typename U>
184-
U&& f(U&&) noexcept; // New behavior: ADL at (1) correctly finds this function
185-
}
186-
187-
namespace D
188-
{
189-
using namespace B;
190-
191-
void h()
192-
{
193-
D::f<void>(C::S<int>());
194-
}
195-
}
196-
```
197-
198-
The same underlying issue can cause code that previously compiled to now be rejected:
199-
200-
```cpp
201-
#include <memory>
202-
namespace Addin {}
203-
namespace Gui
204-
{
205-
using namespace Addin;
206-
}
207-
208-
namespace Addin
209-
{
210-
using namespace std;
211-
}
212-
213-
// This previously compiled, but now emits error C2065 for undeclared name 'allocator'.
214-
// This should be declared as 'std::allocator<T*>' because the using directive nominating
215-
// 'std' is not active at this point.
216-
template <class T, class U = allocator<T*>>
217-
class resource_list
218-
{
219-
};
220-
221-
namespace Gui
222-
{
223-
typedef resource_list<int> intlist;
224-
}
225-
```
226-
227122
## <a name="improvements_176"></a> Conformance improvements in Visual Studio 2022 version 17.6
228123

229124
Visual Studio 2022 version 17.6 contains the following conformance improvements, bug fixes, and behavior changes in the Microsoft C/C++ compiler.

0 commit comments

Comments
 (0)