Skip to content
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 13 additions & 9 deletions libcxx/docs/ReleaseNotes/20.rst
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ see the `releases page <https://llvm.org/releases/>`_.
What's New in Libc++ 20.0.0?
==============================

The main focus of the libc++ team has been to implement new C++20, C++23, and C++26 features.

Implemented Papers
------------------

Expand Down Expand Up @@ -111,6 +113,13 @@ Improvements and New Features
std::errc::not_a_directory``, or use ``err.default_error_condition()`` to map to an ``error_condition``, and then test
its ``value()`` and ``category()``.

- ``std::stable_sort`` uses radix sort for integral types now, which can improve the performance up to 10 times, depending
on type of sorted elements and the initial state of the sorted array.

- Reduced the amount of debug information generated for internal typedefs. This reduces the size of debug builds.

- Added :ref:`hardening mode <hardening>` support for ``forward_list`` and ``bitset``.

Deprecations and Removals
-------------------------

Expand All @@ -129,10 +138,10 @@ Deprecations and Removals
supported as an extension anymore, please migrate any code that uses e.g. ``std::vector<const T>`` to be
standards conforming.

- Non-conforming member typedefs ``base``, ``iterator``, ``const_iterator``, and ``const_reference`` of ``std::bitset``,
and member typedef ``base`` of ``std::forward_list`` and ``std::list`` are removed. Previously, these member typedefs
(except ``const_reference``) were private but could cause ambiguity in name lookup. Code that expects such ambiguity
will possibly not compile in LLVM 20.
- Non-conforming member typedefs ``base``, ``iterator``, ``const_iterator``, ``size_type``, ``difference_type``, and
``const_reference`` of ``std::bitset``, and member typedef ``base`` of ``std::forward_list`` and ``std::list`` are
removed. Previously, these member typedefs (except ``const_reference``) were private but could cause ambiguity in name
lookup. Code that expects such ambiguity will possibly not compile in LLVM 20.

- The function ``__libcpp_verbose_abort()`` is now ``noexcept``, to match ``std::terminate()``. (The combination of
``noexcept`` and ``[[noreturn]]`` has special significance for function effects analysis.) For backwards compatibility,
Expand Down Expand Up @@ -196,8 +205,3 @@ ABI Affecting Changes

- The localization support base API has been reimplemented, leading to different functions being exported from the
libc++ built library on Windows and Windows-like platforms.

Build System Changes
--------------------

- TODO
Loading