Libc++ 9.0.0 Release Notes¶
Written by the Libc++ Team
Introduction¶
This document contains the release notes for the libc++ C++ Standard Library, part of the LLVM Compiler Infrastructure, release 9.0.0. Here we describe the status of libc++ in some detail, including major improvements from the previous release and new feature work. For the general LLVM release notes, see the LLVM documentation. All LLVM releases may be downloaded from the LLVM releases web site.
For more information about libc++, please see the Libc++ Web Site or the LLVM Web Site.
What’s New in Libc++ 9.0.0?¶
Fixes¶
- Minor fixes to
std::chrono
operators. - libc++ now correctly handles Objective-C++ ARC qualifiers in
std::is_pointer
. std::span
general updates and fixes.- Updates to the
std::abs
implementation. std::to_chars
now adds leading zeros.- Ensure
std::tuple
is trivially constructible. std::aligned_union
now works in C++03.- Output of nullptr to
std::basic_ostream
is formatted properly.
Features¶
- Implemented P0608: sane variant converting constructor.
- Added
ssize
function. - Added
front
andback
methods instd::span
. std::is_unbounded_array
andstd::is_bounded_array
added to type traits.std::atomic
now includes many new features and specialization including improved Freestanding support.- Added
std::midpoint
andstd::lerp
math functions. - Added the function
std::is_constant_evaluated
. - Erase-like algorithms now return size type.
- Added
contains
method to container types. std::swap
is now a constant expression.