
# Overview As a disclaimer, this is my first PR to LLVM and while I've tried to ensure I've followed the LLVM and libc++ contributing guidelines, there's probably a good chance I missed something. If I have, just let me know and I'll try to correct it as soon as I can. This PR implements `std::ranges::iota` and `std::ranges::out_value_result` outlined in [P2440r1](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2440r1.html). As outlined in the paper above, I've: - Implemented `out_value_result` and added to `<algorithm>` - Added `out_value_result`, `iota_result`, and two overloads of `iota` to `std::ranges` in `<numeric>` - Updated the version macro `__cpp_lib_ranges_iota` in `<version>` I've also added tests for `ranges::iota` and `ranges::out_value_result`. Lastly, I added those structs to the appropriate module files. Partially implements #105184 EDIT: Forgot to mention in the original post, thanks to @hawkinsw for taking a look at a preliminary version of this PR! # TODOs - [x] Updating the range [status doc](https://github.com/jamesETsmith/llvm-project/blob/main/libcxx/docs/Status/RangesMajorFeatures.csv) - [x] Ensure all comments from https://reviews.llvm.org/D121436 are addressed here - [X] EDIT (I'll do this in a separate PR). ~~I'm open to implementing the rest of P2440r1 (`ranges::shift_left` and `ranges::shift_right`) if that's ok, I just wanted to get feedback on `ranges::iota` first~~ - [x] I've been having trouble building the modules locally and want to make sure that's working properly Closes: #134060
43 lines
1.1 KiB
ReStructuredText
43 lines
1.1 KiB
ReStructuredText
.. _cxx23-status:
|
|
|
|
================================
|
|
libc++ C++23 Status
|
|
================================
|
|
|
|
.. include:: ../Helpers/Styles.rst
|
|
|
|
.. contents::
|
|
:local:
|
|
|
|
|
|
Overview
|
|
================================
|
|
|
|
In November 2020, the C++ standard committee adopted the first changes to the next version of the C++ standard, known here as "C++2b" (probably to be C++23).
|
|
In February 2023, the C++ standard committee approved this draft, and sent it to ISO for approval as C++23.
|
|
|
|
This page shows the status of libc++; the status of clang's support of the language features is `here <https://clang.llvm.org/cxx_status.html#cxx23>`__.
|
|
|
|
The groups that have contributed papers:
|
|
|
|
- CWG - Core Language Working group
|
|
- LWG - Library working group
|
|
- SG1 - Study group #1 (Concurrency working group)
|
|
|
|
.. note:: "Nothing to do" means that no library changes were needed to implement this change.
|
|
|
|
Paper Status
|
|
====================================
|
|
|
|
.. csv-table::
|
|
:file: Cxx23Papers.csv
|
|
:header-rows: 1
|
|
:widths: auto
|
|
|
|
Library Working Group Issues Status
|
|
====================================
|
|
|
|
.. csv-table::
|
|
:file: Cxx23Issues.csv
|
|
:header-rows: 1
|
|
:widths: auto |