You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: libcxx/docs/ReleaseNotes/20.rst
+14-10Lines changed: 14 additions & 10 deletions
Original file line number
Diff line number
Diff line change
@@ -35,6 +35,8 @@ see the `releases page <https://llvm.org/releases/>`_.
35
35
What's New in Libc++ 20.0.0?
36
36
==============================
37
37
38
+
The main focus of the libc++ team has been to implement new C++20, C++23, and C++26 features.
39
+
38
40
Implemented Papers
39
41
------------------
40
42
@@ -44,7 +46,7 @@ Implemented Papers
44
46
- P2985R0: A type trait for detecting virtual base classes (`Github <https://github.com/llvm/llvm-project/issues/105432>`__)
45
47
- ``std::jthread`` and ``<stop_token>`` are not guarded behind ``-fexperimental-library`` anymore
46
48
- P2674R1: A trait for implicit lifetime types (`Github <https://github.com/llvm/llvm-project/issues/105259>`__)
47
-
- P0429R9: A Standard ``flat_map`` is partially implemented and ``flat_map`` is provided (`Github <https://github.com/llvm/llvm-project/issues/105190>`__)
49
+
- P0429R9: A Standard ``flat_map`` (`Github <https://github.com/llvm/llvm-project/issues/105190>`__)
48
50
49
51
Improvements and New Features
50
52
-----------------------------
@@ -111,6 +113,13 @@ Improvements and New Features
111
113
std::errc::not_a_directory``, or use ``err.default_error_condition()`` to map to an ``error_condition``, and then test
112
114
its ``value()`` and ``category()``.
113
115
116
+
- ``std::stable_sort`` uses radix sort for integral types now, which can improve the performance up to 10 times, depending
117
+
on type of sorted elements and the initial state of the sorted array.
118
+
119
+
- Reduced the amount of debug information generated for internal typedefs. This reduces the size of debug builds.
120
+
121
+
- Added :ref:`hardening mode <hardening>` support for ``forward_list`` and ``bitset``.
122
+
114
123
Deprecations and Removals
115
124
-------------------------
116
125
@@ -129,10 +138,10 @@ Deprecations and Removals
129
138
supported as an extension anymore, please migrate any code that uses e.g. ``std::vector<const T>`` to be
130
139
standards conforming.
131
140
132
-
- Non-conforming member typedefs ``base``, ``iterator``, ``const_iterator``, and ``const_reference`` of ``std::bitset``,
133
-
and member typedef ``base`` of ``std::forward_list`` and ``std::list`` are removed. Previously, these member typedefs
134
-
(except ``const_reference``) were private but could cause ambiguity in name lookup. Code that expects such ambiguity
135
-
will possibly not compile in LLVM 20.
141
+
- Non-conforming member typedefs ``base``, ``iterator``, ``const_iterator``, ``size_type``, ``difference_type``, and
142
+
``const_reference`` of ``std::bitset``, and member typedef ``base`` of ``std::forward_list`` and ``std::list`` are
143
+
removed. Previously, these member typedefs (except ``const_reference``) were private but could cause ambiguity in name
144
+
lookup. Code that expects such ambiguity will possibly not compile in LLVM 20.
136
145
137
146
- The function ``__libcpp_verbose_abort()`` is now ``noexcept``, to match ``std::terminate()``. (The combination of
138
147
``noexcept`` and ``[[noreturn]]`` has special significance for function effects analysis.) For backwards compatibility,
@@ -196,8 +205,3 @@ ABI Affecting Changes
196
205
197
206
- The localization support base API has been reimplemented, leading to different functions being exported from the
198
207
libc++ built library on Windows and Windows-like platforms.
0 commit comments