зеркало из https://github.com/microsoft/STL.git
Страница:
vNext Planning
Страницы
Advice for Reviewing Pull Requests
Benchmarking the STL
Changelog
Checklist For Merging A Pull Request
Checklist for Toolset Updates
Code Review Videos
Custom Autolinks
Files To Edit When Adding Or Removing Files
Home
MSVC STL Contributors Meeting Notes
Macro _MSVC_STL_UPDATE
Porting STL Visualizers to the VS repository
Porting VSO Bugs To GitHub Issues
Roadmap
Setting Up Azure Pipelines
The Difference Between Core And Non Core Headers
VS 2019 Changelog
VS 2022 Changelog
vNext Planning
23
vNext Planning
Stephan T. Lavavej редактировал(а) эту страницу 2024-08-02 01:03:58 -07:00
Salvage The Old vNext Branch
- 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?
Major Overhauls
<regex>
<deque>
<unordered_map>
,<unordered_set>
- iostreams floating-point
More Work
- 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. - Eradicate the last traces of XP/Vista support
- Remove
_app
DLLs <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.iomanip.cpp
doesn't need to be separately compiled- Unnecessary padding in
_Ctypevec
(was #426) - Likely unnecessary padding in
basic_istream
- Ensure that
future<const T>
andpromise<const T>
work with the overhauled representation (was #2599) - We should regularly add exports to prevent people from assuming they can use old DLLs
Compiler Work
- 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?
ABI-Breaking Developer Community Tickets
- Bogus std::this_thread::sleep_for implementation
- Intermittent incorrect status returned by std::condition_variable::wait_for
- After calling std::promise::set_value_at_thread_exit, std::future::wait_for is blocked until promise's thread exits
- multiline C++
- VC++: std::exception::what has wrong signature
- TLS is not initialized correctly
- Debug version of STL is not excepion safe and causes terminate() to be called under low memory
- regex engine is extremely poor, resulting in stack overflows and other runtime failures with reasonable input
- size of std::mutex class on x64_86 is 80 bytes
- C++ iostreams over 2 GB doesn't work on x64 platform
- regex complexity exception
- Std::regex_error at memory location
- Bogus std::this_thread::sleep_for implementation
- Grouping within repetition causes regex stack error