-
Notifications
You must be signed in to change notification settings - Fork 1.5k
vNext Planning
Stephan T. Lavavej edited this page Sep 9, 2021
·
23 revisions
- Multithreading overhaul
- Iterator debugging overhaul (doubly-linked iterator chains, no proxy allocations)
- Still need to overhaul
deque
andvector<bool>
- Also simplifies checked/unchecked and modifiable/const, avoiding inheritance (which is non-standard)
- Still need to overhaul
- Remove
/clr:pure
- Flat C exports
- Remove
<hash_map>
,<hash_set>
- Remove
tr1
- Other changes? (vcplatform?)
<regex>
<deque>
-
<unordered_map>
,<unordered_set>
- iostreams floating-point
-
vNext Issues
- #938 P0408R7 Efficient Access To basic_stringbuf's Buffer can be significantly simplified
-
TRANSITION, ABI
comments - Consolidate satellite DLL and import LIB code back into the main DLL (and API loading code like for ICU); make sure to keep
vector
/string
etc. out of the DLL/import LIB. - Drop Vista support; Win7 must be the minimum platform
- Remove
_app
DLLs - Increase x86 to
/arch:SSE2
? -
<variant>
changes:- Store
index() + 1
instead ofindex()
to so the range of possible stored values is contiguous for minor codegen improvements. - The hash value of a variant should depend on its
index()
as well as the stored value sovariant<int, int>{in_place_index<0>, 42}
andvariant<int, int>{in_place_index<1>, 42}
don't collide.
- Store
-
[[no_unique_address]]
will be unconditionally available, allowing us to replace_Compressed_pair
and improve the representations of more types.
- Remove
/Za
(effectively superseded by/permissive-
) - Remove
/Zc:wchar_t-
- Increase minimum Standard version to C++17 or C++20?
- RTTI overhaul?
- EH overhaul possible? (Table-based x86?)
- Fix Empty Base Class Optimization
- Avoid ABI-breaking options (e.g.
/vd2
,/vmg
,/J
) - How do we detect/prevent mixing?