[libc++][PSTL] Update papers and add a status page for the algorithms

Reviewed By: #libc, ldionne

Spies: libcxx-commits, mgrang, arphaman

Differential Revision: https://reviews.llvm.org/D152578
This commit is contained in:
Nikolas Klauser 2023-06-09 12:34:07 -07:00
parent f687850de8
commit ab028d8006
9 changed files with 126 additions and 13 deletions

View File

@ -43,6 +43,7 @@ Paper Status
.. [#note-P0067] P0067: ``std::(to|from)_chars`` for integrals has been available since version 7.0. ``std::to_chars`` for ``float`` and ``double`` since version 14.0 ``std::to_chars`` for ``long double`` uses the implementation for ``double``.
.. [#note-P0607] P0607: The parts of P0607 that are not done are the ``<regex>`` bits.
.. [#note-P0154] P0154: This is currently not implemented for clang because clang does not implement the required macros.
.. [#note-P0452] P0452: The changes to ``std::transform_inclusive_scan`` and ``std::transform_exclusive_scan`` have not yet been implemented.
.. _issues-status-cxx17:

View File

@ -162,7 +162,7 @@
"`2685 <https://wg21.link/LWG2685>`__","shared_ptr deleters must not throw on move construction","Oulu","|Complete|",""
"`2687 <https://wg21.link/LWG2687>`__","{inclusive,exclusive}_scan misspecified","Oulu","",""
"`2688 <https://wg21.link/LWG2688>`__","clamp misses preconditions and has extraneous condition on result","Oulu","|Complete|",""
"`2689 <https://wg21.link/LWG2689>`__","Parallel versions of std::copy and std::move shouldn't be in order","Oulu","",""
"`2689 <https://wg21.link/LWG2689>`__","Parallel versions of std::copy and std::move shouldn't be in order","Oulu","|Nothing to do|",""
"`2698 <https://wg21.link/LWG2698>`__","Effect of assign() on iterators/pointers/references","Oulu","|Complete|",""
"`2704 <https://wg21.link/LWG2704>`__","recursive_directory_iterator's members should require '``*this`` is dereferenceable'","Oulu","|Complete|",""
"`2706 <https://wg21.link/LWG2706>`__","Error reporting for recursive_directory_iterator::pop() is under-specified","Oulu","|Complete|",""

1 Issue # Issue Name Meeting Status First released version
162 `2685 <https://wg21.link/LWG2685>`__ shared_ptr deleters must not throw on move construction Oulu |Complete|
163 `2687 <https://wg21.link/LWG2687>`__ {inclusive,exclusive}_scan misspecified Oulu
164 `2688 <https://wg21.link/LWG2688>`__ clamp misses preconditions and has extraneous condition on result Oulu |Complete|
165 `2689 <https://wg21.link/LWG2689>`__ Parallel versions of std::copy and std::move shouldn't be in order Oulu |Nothing to do|
166 `2698 <https://wg21.link/LWG2698>`__ Effect of assign() on iterators/pointers/references Oulu |Complete|
167 `2704 <https://wg21.link/LWG2704>`__ recursive_directory_iterator's members should require '``*this`` is dereferenceable' Oulu |Complete|
168 `2706 <https://wg21.link/LWG2706>`__ Error reporting for recursive_directory_iterator::pop() is under-specified Oulu |Complete|

View File

@ -25,7 +25,7 @@
"`P0074R0 <https://wg21.link/p0074r0>`__","LWG","Making ``std::owner_less``\ more flexible","Kona","|Complete|","3.8"
"`P0013R1 <https://wg21.link/p0013r1>`__","LWG","Logical type traits rev 2","Kona","|Complete|","3.8"
"","","","","",""
"`P0024R2 <https://wg21.link/P0024R2>`__","LWG","The Parallelism TS Should be Standardized","Jacksonville","",""
"`P0024R2 <https://wg21.link/P0024R2>`__","LWG","The Parallelism TS Should be Standardized","Jacksonville","|Partial|",""
"`P0226R1 <https://wg21.link/P0226R1>`__","LWG","Mathematical Special Functions for C++17","Jacksonville","",""
"`P0220R1 <https://wg21.link/P0220R1>`__","LWG","Adopt Library Fundamentals V1 TS Components for C++17","Jacksonville","|Complete|","16.0"
"`P0218R1 <https://wg21.link/P0218R1>`__","LWG","Adopt the File System TS for C++17","Jacksonville","|Complete|","7.0"
@ -61,14 +61,14 @@
"`p0295r0 <https://wg21.link/p0295r0>`__","LWG","Adopt Selected Library Fundamentals V2 Components for C++17","Oulu","|Complete|","4.0"
"`p0302r1 <https://wg21.link/p0302r1>`__","LWG","Removing Allocator Support in std::function","Oulu","|Complete|","4.0"
"`p0307r2 <https://wg21.link/p0307r2>`__","LWG","Making Optional Greater Equal Again","Oulu","|Complete|","4.0"
"`p0336r1 <https://wg21.link/p0336r1>`__","LWG","Better Names for Parallel Execution Policies in C++17","Oulu","",""
"`p0336r1 <https://wg21.link/p0336r1>`__","LWG","Better Names for Parallel Execution Policies in C++17","Oulu","|Complete|","17.0"
"`p0337r0 <https://wg21.link/p0337r0>`__","LWG","Delete ``operator=``\ for polymorphic_allocator","Oulu","|Complete|","3.9"
"`p0346r1 <https://wg21.link/p0346r1>`__","LWG","A <random> Nomenclature Tweak","Oulu","|Complete|","3.9"
"`p0358r1 <https://wg21.link/p0358r1>`__","LWG","Fixes for not_fn","Oulu","|Complete|","3.9"
"`p0371r1 <https://wg21.link/p0371r1>`__","LWG","Temporarily discourage memory_order_consume","Oulu","|Nothing To Do|","n/a"
"`p0392r0 <https://wg21.link/p0392r0>`__","LWG","Adapting string_view by filesystem paths","Oulu","|Complete|","4.0"
"`p0393r3 <https://wg21.link/p0393r3>`__","LWG","Making Variant Greater Equal","Oulu","|Complete|","4.0"
"`P0394r4 <https://wg21.link/P0394r4>`__","LWG","Hotel Parallelifornia: terminate() for Parallel Algorithms Exception Handling","Oulu","",""
"`P0394r4 <https://wg21.link/P0394r4>`__","LWG","Hotel Parallelifornia: terminate() for Parallel Algorithms Exception Handling","Oulu","|Complete|","17.0"
"","","","","",""
"`P0003R5 <https://wg21.link/P0003R5>`__","LWG","Removing Deprecated Exception Specifications from C++17","Issaquah","|Complete|","5.0"
"`P0067R5 <https://wg21.link/P0067R5>`__","LWG","Elementary string conversions, revision 5","Issaquah","|Partial| [#note-P0067]_",""
@ -95,19 +95,19 @@
"`P0317R1 <https://wg21.link/P0317R1>`__","LWG","Directory Entry Caching for Filesystem","Kona","|Complete|","7.0"
"`P0430R2 <https://wg21.link/P0430R2>`__","LWG","File system library on non-POSIX-like operating systems","Kona","|Complete|","7.0"
"`P0433R2 <https://wg21.link/P0433R2>`__","LWG","Toward a resolution of US7 and US14: Integrating template deduction for class templates into the standard library","Kona","|Complete|","14.0"
"`P0452R1 <https://wg21.link/P0452R1>`__","LWG","Unifying <numeric> Parallel Algorithms","Kona","",""
"`P0467R2 <https://wg21.link/P0467R2>`__","LWG","Iterator Concerns for Parallel Algorithms","Kona","",""
"`P0452R1 <https://wg21.link/P0452R1>`__","LWG","Unifying <numeric> Parallel Algorithms","Kona","|Partial| [#note-P0452]_",""
"`P0467R2 <https://wg21.link/P0467R2>`__","LWG","Iterator Concerns for Parallel Algorithms","Kona","|Partial|",""
"`P0492R2 <https://wg21.link/P0492R2>`__","LWG","Proposed Resolution of C++17 National Body Comments for Filesystems","Kona","|Complete|","7.0"
"`P0518R1 <https://wg21.link/P0518R1>`__","LWG","Allowing copies as arguments to function objects given to parallel algorithms in response to CH11","Kona","",""
"`P0523R1 <https://wg21.link/P0523R1>`__","LWG","Wording for CH 10: Complexity of parallel algorithms","Kona","",""
"`P0518R1 <https://wg21.link/P0518R1>`__","LWG","Allowing copies as arguments to function objects given to parallel algorithms in response to CH11","Kona","|Nothing to do|",""
"`P0523R1 <https://wg21.link/P0523R1>`__","LWG","Wording for CH 10: Complexity of parallel algorithms","Kona","|Nothing to do|",""
"`P0548R1 <https://wg21.link/P0548R1>`__","LWG","common_type and duration","Kona","|Complete|","5.0"
"`P0558R1 <https://wg21.link/P0558R1>`__","LWG","Resolving atomic<T> named base class inconsistencies","Kona","|Complete|",""
"`P0574R1 <https://wg21.link/P0574R1>`__","LWG","Algorithm Complexity Constraints and Parallel Overloads","Kona","",""
"`P0574R1 <https://wg21.link/P0574R1>`__","LWG","Algorithm Complexity Constraints and Parallel Overloads","Kona","|Nothing to do|",""
"`P0599R1 <https://wg21.link/P0599R1>`__","LWG","noexcept for hash functions","Kona","|Complete|","5.0"
"`P0604R0 <https://wg21.link/P0604R0>`__","LWG","Resolving GB 55, US 84, US 85, US 86","Kona","|Complete|",""
"`P0607R0 <https://wg21.link/P0607R0>`__","LWG","Inline Variables for the Standard Library","Kona","|In Progress| [#note-P0607]_","6.0"
"`P0618R0 <https://wg21.link/P0618R0>`__","LWG","Deprecating <codecvt>","Kona","|Complete|","15.0"
"`P0623R0 <https://wg21.link/P0623R0>`__","LWG","Final C++17 Parallel Algorithms Fixes","Kona","",""
"`P0623R0 <https://wg21.link/P0623R0>`__","LWG","Final C++17 Parallel Algorithms Fixes","Kona","|Nothing to do|",""
"","","","","",""
"`P0682R1 <https://wg21.link/P0682R1>`__","LWG","Repairing elementary string conversions","Toronto","",""
"`P0739R0 <https://wg21.link/P0739R0>`__","LWG","Some improvements to class template argument deduction integration into the standard library","Toronto","|Complete|","5.0"

1 Paper # Group Paper Name Meeting Status First released version
25 `P0074R0 <https://wg21.link/p0074r0>`__ LWG Making ``std::owner_less``\ more flexible Kona |Complete| 3.8
26 `P0013R1 <https://wg21.link/p0013r1>`__ LWG Logical type traits rev 2 Kona |Complete| 3.8
27
28 `P0024R2 <https://wg21.link/P0024R2>`__ LWG The Parallelism TS Should be Standardized Jacksonville |Partial|
29 `P0226R1 <https://wg21.link/P0226R1>`__ LWG Mathematical Special Functions for C++17 Jacksonville
30 `P0220R1 <https://wg21.link/P0220R1>`__ LWG Adopt Library Fundamentals V1 TS Components for C++17 Jacksonville |Complete| 16.0
31 `P0218R1 <https://wg21.link/P0218R1>`__ LWG Adopt the File System TS for C++17 Jacksonville |Complete| 7.0
61 `p0295r0 <https://wg21.link/p0295r0>`__ LWG Adopt Selected Library Fundamentals V2 Components for C++17 Oulu |Complete| 4.0
62 `p0302r1 <https://wg21.link/p0302r1>`__ LWG Removing Allocator Support in std::function Oulu |Complete| 4.0
63 `p0307r2 <https://wg21.link/p0307r2>`__ LWG Making Optional Greater Equal Again Oulu |Complete| 4.0
64 `p0336r1 <https://wg21.link/p0336r1>`__ LWG Better Names for Parallel Execution Policies in C++17 Oulu |Complete| 17.0
65 `p0337r0 <https://wg21.link/p0337r0>`__ LWG Delete ``operator=``\ for polymorphic_allocator Oulu |Complete| 3.9
66 `p0346r1 <https://wg21.link/p0346r1>`__ LWG A <random> Nomenclature Tweak Oulu |Complete| 3.9
67 `p0358r1 <https://wg21.link/p0358r1>`__ LWG Fixes for not_fn Oulu |Complete| 3.9
68 `p0371r1 <https://wg21.link/p0371r1>`__ LWG Temporarily discourage memory_order_consume Oulu |Nothing To Do| n/a
69 `p0392r0 <https://wg21.link/p0392r0>`__ LWG Adapting string_view by filesystem paths Oulu |Complete| 4.0
70 `p0393r3 <https://wg21.link/p0393r3>`__ LWG Making Variant Greater Equal Oulu |Complete| 4.0
71 `P0394r4 <https://wg21.link/P0394r4>`__ LWG Hotel Parallelifornia: terminate() for Parallel Algorithms Exception Handling Oulu |Complete| 17.0
72
73 `P0003R5 <https://wg21.link/P0003R5>`__ LWG Removing Deprecated Exception Specifications from C++17 Issaquah |Complete| 5.0
74 `P0067R5 <https://wg21.link/P0067R5>`__ LWG Elementary string conversions, revision 5 Issaquah |Partial| [#note-P0067]_
95 `P0317R1 <https://wg21.link/P0317R1>`__ LWG Directory Entry Caching for Filesystem Kona |Complete| 7.0
96 `P0430R2 <https://wg21.link/P0430R2>`__ LWG File system library on non-POSIX-like operating systems Kona |Complete| 7.0
97 `P0433R2 <https://wg21.link/P0433R2>`__ LWG Toward a resolution of US7 and US14: Integrating template deduction for class templates into the standard library Kona |Complete| 14.0
98 `P0452R1 <https://wg21.link/P0452R1>`__ LWG Unifying <numeric> Parallel Algorithms Kona |Partial| [#note-P0452]_
99 `P0467R2 <https://wg21.link/P0467R2>`__ LWG Iterator Concerns for Parallel Algorithms Kona |Partial|
100 `P0492R2 <https://wg21.link/P0492R2>`__ LWG Proposed Resolution of C++17 National Body Comments for Filesystems Kona |Complete| 7.0
101 `P0518R1 <https://wg21.link/P0518R1>`__ LWG Allowing copies as arguments to function objects given to parallel algorithms in response to CH11 Kona |Nothing to do|
102 `P0523R1 <https://wg21.link/P0523R1>`__ LWG Wording for CH 10: Complexity of parallel algorithms Kona |Nothing to do|
103 `P0548R1 <https://wg21.link/P0548R1>`__ LWG common_type and duration Kona |Complete| 5.0
104 `P0558R1 <https://wg21.link/P0558R1>`__ LWG Resolving atomic<T> named base class inconsistencies Kona |Complete|
105 `P0574R1 <https://wg21.link/P0574R1>`__ LWG Algorithm Complexity Constraints and Parallel Overloads Kona |Nothing to do|
106 `P0599R1 <https://wg21.link/P0599R1>`__ LWG noexcept for hash functions Kona |Complete| 5.0
107 `P0604R0 <https://wg21.link/P0604R0>`__ LWG Resolving GB 55, US 84, US 85, US 86 Kona |Complete|
108 `P0607R0 <https://wg21.link/P0607R0>`__ LWG Inline Variables for the Standard Library Kona |In Progress| [#note-P0607]_ 6.0
109 `P0618R0 <https://wg21.link/P0618R0>`__ LWG Deprecating <codecvt> Kona |Complete| 15.0
110 `P0623R0 <https://wg21.link/P0623R0>`__ LWG Final C++17 Parallel Algorithms Fixes Kona |Nothing to do|
111
112 `P0682R1 <https://wg21.link/P0682R1>`__ LWG Repairing elementary string conversions Toronto
113 `P0739R0 <https://wg21.link/P0739R0>`__ LWG Some improvements to class template argument deduction integration into the standard library Toronto |Complete| 5.0

View File

@ -71,7 +71,7 @@
"`3042 <https://wg21.link/LWG3042>`__","``is_literal_type_v``\ should be inline","Jacksonville","|Complete|",""
"`3043 <https://wg21.link/LWG3043>`__","Bogus postcondition for ``filesystem_error``\ constructor","Jacksonville","|Complete|",""
"`3045 <https://wg21.link/LWG3045>`__","``atomic<floating-point>``\ doesn't have ``value_type``\ or ``difference_type``\ ","Jacksonville","",""
"`3048 <https://wg21.link/LWG3048>`__","``transform_reduce(exec, first1, last1, first2, init)``\ discards execution policy","Jacksonville","",""
"`3048 <https://wg21.link/LWG3048>`__","``transform_reduce(exec, first1, last1, first2, init)``\ discards execution policy","Jacksonville","|Complete|","17.0"
"`3051 <https://wg21.link/LWG3051>`__","Floating point classifications were inadvertently changed in P0175","Jacksonville","|Nothing To Do|",""
"`3075 <https://wg21.link/LWG3075>`__","``basic_string``\ needs deduction guides from ``basic_string_view``\ ","Jacksonville","|Complete|",""
"","","","","",""

Can't render this file because it has a wrong number of fields in line 2.

View File

@ -85,7 +85,7 @@
"`P0738R2 <https://wg21.link/P0738R2>`__","LWG","I Stream, You Stream, We All Stream for istream_iterator","Kona","",""
"`P0811R3 <https://wg21.link/P0811R3>`__","LWG","Well-behaved interpolation for numbers and pointers","Kona","|Complete|","9.0"
"`P0920R2 <https://wg21.link/P0920R2>`__","LWG","Precalculated hash values in lookup","Kona","Reverted by `P1661 <https://wg21.link/P1661>`__",""
"`P1001R2 <https://wg21.link/P1001R2>`__","LWG","Target Vectorization Policies from Parallelism V2 TS to C++20","Kona","",""
"`P1001R2 <https://wg21.link/P1001R2>`__","LWG","Target Vectorization Policies from Parallelism V2 TS to C++20","Kona","|Complete|","17.0"
"`P1024R3 <https://wg21.link/P1024R3>`__","LWG","Usability Enhancements for std::span","Kona","|Complete|","9.0"
"`P1164R1 <https://wg21.link/P1164R1>`__","LWG","Make create_directory() Intuitive","Kona","|Complete|","12.0"
"`P1227R2 <https://wg21.link/P1227R2>`__","LWG","Signed ssize() functions, unsigned size() functions","Kona","|Complete|","9.0"

Can't render this file because it has a wrong number of fields in line 2.

View File

@ -0,0 +1,31 @@
.. pstl-status:
==========================
libc++ Parallel STL Status
==========================
.. include:: ../Helpers/Styles.rst
.. contents::
:local:
Overview
========
This document contains the status of the Parallel STL (PSTL) in libc++. It is
used to track both the status of the sub-projects of the PSTL and who is
assigned to these sub-projects. This is imperative to effective implementation
so that work is not duplicated.
If you are interested in contributing to the libc++ PSTL, please send a message
to the #libcxx channel in the LLVM discoard. Please *do not* start working on
any of the *assigned* items below.
Sub-Projects in the Implementation Effort
=========================================
.. csv-table::
:file: PSTLPaper.csv
:header-rows: 1
:widths: auto

View File

@ -0,0 +1,80 @@
Section,Description,Assignee,Complete
| `[adjacent.difference] <https://wg21.link/adjacent.difference>`_,std::adjacent_difference,Nikolas Klauser,|Not Started|
| `[alg.adjacent.find] <https://wg21.link/alg.adjacent.find>`_,std::adjacent_find,Nikolas Klauser,|Not Started|
| `[alg.all.of] <https://wg21.link/alg.all.of>`_,std::all_of,Nikolas Klauser,|Complete|
| `[alg.any.of] <https://wg21.link/alg.any.of>`_,std::any_of,Nikolas Klauser,|Complete|
| `[alg.copy] <https://wg21.link/alg.copy>`_,std::copy,Nikolas Klauser,|Complete|
| `[alg.copy] <https://wg21.link/alg.copy>`_,std::copy_if,Nikolas Klauser,|Complete|
| `[alg.copy] <https://wg21.link/alg.copy>`_,std::copy_n,Nikolas Klauser,|Complete|
| `[alg.count] <https://wg21.link/alg.count>`_,std::count,Nikolas Klauser,|Complete|
| `[alg.count] <https://wg21.link/alg.count>`_,std::count_if,Nikolas Klauser,|Complete|
| `[alg.equal] <https://wg21.link/alg.equal>`_,std::equal,Nikolas Klauser,|Complete|
| `[alg.exclusive.scan] <https://wg21.link/alg.exclusive.scan>`_,std::exclusive_scan,Nikolas Klauser,|Not Started|
| `[alg.exclusive.scan] <https://wg21.link/alg.exclusive.scan>`_,std::exclusive_scan,Nikolas Klauser,|Not Started|
| `[alg.fill] <https://wg21.link/alg.fill>`_,std::fill,Nikolas Klauser,|Complete|
| `[alg.fill] <https://wg21.link/alg.fill>`_,std::fill_n,Nikolas Klauser,|Complete|
| `[alg.find] <https://wg21.link/alg.find>`_,std::find,Nikolas Klauser,|Complete|
| `[alg.find.end] <https://wg21.link/alg.find.end>`_,std::find_end,Nikolas Klauser,|Not Started|
| `[alg.find.first.of] <https://wg21.link/alg.find.first.of>`_,std::find_first_of,Nikolas Klauser,|Not Started|
| `[alg.find] <https://wg21.link/alg.find>`_,std::find_if,Nikolas Klauser,|Complete|
| `[alg.find] <https://wg21.link/alg.find>`_,std::find_if_not,Nikolas Klauser,|Complete|
| `[alg.foreach] <https://wg21.link/alg.foreach>`_,std::for_each,Nikolas Klauser,|Complete|
| `[alg.foreach] <https://wg21.link/alg.foreach>`_,std::for_each_n,Nikolas Klauser,|Complete|
| `[alg.generate] <https://wg21.link/alg.generate>`_,std::generate,Nikolas Klauser,|In Progress|
| `[alg.generate] <https://wg21.link/alg.generate>`_,std::generate_n,Nikolas Klauser,|In Progress|
| `[alg.set.operations] <https://wg21.link/alg.set.operations>`_,std::includes,Nikolas Klauser,|Not Started|
| `[alg.inclusive.scan] <https://wg21.link/alg.inclusive.scan>`_,std::inclusive_scan,Nikolas Klauser,|Not Started|
| `[alg.merge] <https://wg21.link/alg.merge>`_,std::inplace_merge,Nikolas Klauser,|Not Started|
| `[alg.heap.operations] <https://wg21.link/alg.heap.operations>`_,std::is_heap,Nikolas Klauser,|Not Started|
| `[alg.heap.operations] <https://wg21.link/alg.heap.operations>`_,std::is_heap_until,Nikolas Klauser,|Not Started|
| `[alg.partitions] <https://wg21.link/alg.partitions>`_,std::is_partitioned,Nikolas Klauser,|Not Started|
| `[alg.sort] <https://wg21.link/alg.sort>`_,std::is_sorted,Nikolas Klauser,|Not Started|
| `[alg.sort] <https://wg21.link/alg.sort>`_,std::is_sorted_until,Nikolas Klauser,|Not Started|
| `[alg.lex.comparison] <https://wg21.link/alg.lex.comparison>`_,std::lexicographical_compare,Nikolas Klauser,|Not Started|
| `[alg.min.max] <https://wg21.link/alg.min.max>`_,std::max_element,Nikolas Klauser,|Not Started|
| `[alg.merge] <https://wg21.link/alg.merge>`_,std::merge,Nikolas Klauser,|Not Started|
| `[alg.min.max] <https://wg21.link/alg.min.max>`_,std::min_element,Nikolas Klauser,|Not Started|
| `[alg.min.max] <https://wg21.link/alg.min.max>`_,std::minmax_element,Nikolas Klauser,|Not Started|
| `[mismatch] <https://wg21.link/mismatch>`_,std::mismatch,Nikolas Klauser,|Not Started|
| `[alg.move] <https://wg21.link/alg.move>`_,std::move,Nikolas Klauser,|Complete|
| `[alg.none.of] <https://wg21.link/alg.none.of>`_,std::none_of,Nikolas Klauser,|Complete|
| `[alg.nth.element] <https://wg21.link/alg.nth.element>`_,std::nth_element,Nikolas Klauser,|Not Started|
| `[alg.sort] <https://wg21.link/alg.sort>`_,std::partial_sort,Nikolas Klauser,|Not Started|
| `[alg.sort] <https://wg21.link/alg.sort>`_,std::partial_sort_copy,Nikolas Klauser,|Not Started|
| `[alg.partitions] <https://wg21.link/alg.partitions>`_,std::partition,Nikolas Klauser,|Not Started|
| `[alg.partitions] <https://wg21.link/alg.partitions>`_,std::partition_copy,Nikolas Klauser,|Not Started|
| `[reduce] <https://wg21.link/reduce>`_,std::reduce,Nikolas Klauser,|Complete|
| `[alg.remove] <https://wg21.link/alg.remove>`_,std::remove,Nikolas Klauser,|Not Started|
| `[alg.remove] <https://wg21.link/alg.remove>`_,std::remove_copy,Nikolas Klauser,|Not Started|
| `[alg.remove] <https://wg21.link/alg.remove>`_,std::remove_copy_if,Nikolas Klauser,|Not Started|
| `[alg.remove] <https://wg21.link/alg.remove>`_,std::remove_if,Nikolas Klauser,|Not Started|
| `[alg.replace] <https://wg21.link/alg.replace>`_,std::replace,Nikolas Klauser,|Complete|
| `[alg.replace] <https://wg21.link/alg.replace>`_,std::replace_copy,Nikolas Klauser,|Complete|
| `[alg.replace] <https://wg21.link/alg.replace>`_,std::replace_copy_if,Nikolas Klauser,|Complete|
| `[alg.replace] <https://wg21.link/alg.replace>`_,std::replace_if,Nikolas Klauser,|Complete|
| `[alg.reverse] <https://wg21.link/alg.reverse>`_,std::reverse,Nikolas Klauser,|Not Started|
| `[alg.reverse] <https://wg21.link/alg.reverse>`_,std::reverse_copy,Nikolas Klauser,|Not Started|
| `[alg.rotate] <https://wg21.link/alg.rotate>`_,std::rotate,Nikolas Klauser,|Not Started|
| `[alg.rotate] <https://wg21.link/alg.rotate>`_,std::rotate_copy,Nikolas Klauser,|Not Started|
| `[alg.search] <https://wg21.link/alg.search>`_,std::search,Nikolas Klauser,|Not Started|
| `[alg.search] <https://wg21.link/alg.search>`_,std::search_n,Nikolas Klauser,|Not Started|
| `[alg.set.operations] <https://wg21.link/alg.set.operations>`_,std::set_difference,Nikolas Klauser,|Not Started|
| `[alg.set.operations] <https://wg21.link/alg.set.operations>`_,std::set_intersection,Nikolas Klauser,|Not Started|
| `[alg.set.operations] <https://wg21.link/alg.set.operations>`_,std::set_symmetric_difference,Nikolas Klauser,|Not Started|
| `[alg.set.operations] <https://wg21.link/alg.set.operations>`_,std::set_union,Nikolas Klauser,|Not Started|
| `[alg.sort] <https://wg21.link/alg.sort>`_,std::sort,Nikolas Klauser,|Not Started|
| `[alg.partitions] <https://wg21.link/alg.partitions>`_,std::stable_partition,Nikolas Klauser,|Not Started|
| `[alg.sort] <https://wg21.link/alg.sort>`_,std::stable_sort,Nikolas Klauser,|Complete|
| `[alg.swap] <https://wg21.link/alg.swap>`_,std::swap_ranges,Nikolas Klauser,|Not Started|
| `[alg.transform] <https://wg21.link/alg.transform>`_,std::transform,Nikolas Klauser,|Complete|
| `[alg.transform.exclusive.scan] <https://wg21.link/alg.transform.exclusive.scan>`_,std::transform_exclusive_scan,Nikolas Klauser,|Not Started|
| `[alg.transform.inclusive.scan] <https://wg21.link/alg.transform.inclusive.scan>`_,std::transform_inclusive_scan,Nikolas Klauser,|Not Started|
| `[transform.reduce] <https://wg21.link/transform.reduce>`_,std::transform_reduce,Nikolas Klauser,|Complete|
| `[uninitialized.copy] <https://wg21.link/uninitialized.copy>`_,std::uninitialized_copy,Nikolas Klauser,|Not Started|
| `[uninitialized.copy] <https://wg21.link/uninitialized.copy>`_,std::uninitialized_copy_n,Nikolas Klauser,|Not Started|
| `[uninitialized.fill] <https://wg21.link/uninitialized.fill>`_,std::uninitialized_fill,Nikolas Klauser,|Not Started|
| `[uninitialized.fill] <https://wg21.link/uninitialized.fill>`_,std::uninitialized_fill_n,Nikolas Klauser,|Not Started|
| `[uninitialized.move] <https://wg21.link/uninitialized.move>`_,std::uninitialized_move,Nikolas Klauser,|Not Started|
| `[uninitialized.move] <https://wg21.link/uninitialized.move>`_,std::uninitialized_move_n,Nikolas Klauser,|Not Started|
| `[alg.unique] <https://wg21.link/alg.unique>`_,std::unique,Nikolas Klauser,|Not Started|
| `[alg.unique] <https://wg21.link/alg.unique>`_,std::unique_copy,Nikolas Klauser,|Not Started|
1 Section Description Assignee Complete
2 | `[adjacent.difference] <https://wg21.link/adjacent.difference>`_ std::adjacent_difference Nikolas Klauser |Not Started|
3 | `[alg.adjacent.find] <https://wg21.link/alg.adjacent.find>`_ std::adjacent_find Nikolas Klauser |Not Started|
4 | `[alg.all.of] <https://wg21.link/alg.all.of>`_ std::all_of Nikolas Klauser |Complete|
5 | `[alg.any.of] <https://wg21.link/alg.any.of>`_ std::any_of Nikolas Klauser |Complete|
6 | `[alg.copy] <https://wg21.link/alg.copy>`_ std::copy Nikolas Klauser |Complete|
7 | `[alg.copy] <https://wg21.link/alg.copy>`_ std::copy_if Nikolas Klauser |Complete|
8 | `[alg.copy] <https://wg21.link/alg.copy>`_ std::copy_n Nikolas Klauser |Complete|
9 | `[alg.count] <https://wg21.link/alg.count>`_ std::count Nikolas Klauser |Complete|
10 | `[alg.count] <https://wg21.link/alg.count>`_ std::count_if Nikolas Klauser |Complete|
11 | `[alg.equal] <https://wg21.link/alg.equal>`_ std::equal Nikolas Klauser |Complete|
12 | `[alg.exclusive.scan] <https://wg21.link/alg.exclusive.scan>`_ std::exclusive_scan Nikolas Klauser |Not Started|
13 | `[alg.exclusive.scan] <https://wg21.link/alg.exclusive.scan>`_ std::exclusive_scan Nikolas Klauser |Not Started|
14 | `[alg.fill] <https://wg21.link/alg.fill>`_ std::fill Nikolas Klauser |Complete|
15 | `[alg.fill] <https://wg21.link/alg.fill>`_ std::fill_n Nikolas Klauser |Complete|
16 | `[alg.find] <https://wg21.link/alg.find>`_ std::find Nikolas Klauser |Complete|
17 | `[alg.find.end] <https://wg21.link/alg.find.end>`_ std::find_end Nikolas Klauser |Not Started|
18 | `[alg.find.first.of] <https://wg21.link/alg.find.first.of>`_ std::find_first_of Nikolas Klauser |Not Started|
19 | `[alg.find] <https://wg21.link/alg.find>`_ std::find_if Nikolas Klauser |Complete|
20 | `[alg.find] <https://wg21.link/alg.find>`_ std::find_if_not Nikolas Klauser |Complete|
21 | `[alg.foreach] <https://wg21.link/alg.foreach>`_ std::for_each Nikolas Klauser |Complete|
22 | `[alg.foreach] <https://wg21.link/alg.foreach>`_ std::for_each_n Nikolas Klauser |Complete|
23 | `[alg.generate] <https://wg21.link/alg.generate>`_ std::generate Nikolas Klauser |In Progress|
24 | `[alg.generate] <https://wg21.link/alg.generate>`_ std::generate_n Nikolas Klauser |In Progress|
25 | `[alg.set.operations] <https://wg21.link/alg.set.operations>`_ std::includes Nikolas Klauser |Not Started|
26 | `[alg.inclusive.scan] <https://wg21.link/alg.inclusive.scan>`_ std::inclusive_scan Nikolas Klauser |Not Started|
27 | `[alg.merge] <https://wg21.link/alg.merge>`_ std::inplace_merge Nikolas Klauser |Not Started|
28 | `[alg.heap.operations] <https://wg21.link/alg.heap.operations>`_ std::is_heap Nikolas Klauser |Not Started|
29 | `[alg.heap.operations] <https://wg21.link/alg.heap.operations>`_ std::is_heap_until Nikolas Klauser |Not Started|
30 | `[alg.partitions] <https://wg21.link/alg.partitions>`_ std::is_partitioned Nikolas Klauser |Not Started|
31 | `[alg.sort] <https://wg21.link/alg.sort>`_ std::is_sorted Nikolas Klauser |Not Started|
32 | `[alg.sort] <https://wg21.link/alg.sort>`_ std::is_sorted_until Nikolas Klauser |Not Started|
33 | `[alg.lex.comparison] <https://wg21.link/alg.lex.comparison>`_ std::lexicographical_compare Nikolas Klauser |Not Started|
34 | `[alg.min.max] <https://wg21.link/alg.min.max>`_ std::max_element Nikolas Klauser |Not Started|
35 | `[alg.merge] <https://wg21.link/alg.merge>`_ std::merge Nikolas Klauser |Not Started|
36 | `[alg.min.max] <https://wg21.link/alg.min.max>`_ std::min_element Nikolas Klauser |Not Started|
37 | `[alg.min.max] <https://wg21.link/alg.min.max>`_ std::minmax_element Nikolas Klauser |Not Started|
38 | `[mismatch] <https://wg21.link/mismatch>`_ std::mismatch Nikolas Klauser |Not Started|
39 | `[alg.move] <https://wg21.link/alg.move>`_ std::move Nikolas Klauser |Complete|
40 | `[alg.none.of] <https://wg21.link/alg.none.of>`_ std::none_of Nikolas Klauser |Complete|
41 | `[alg.nth.element] <https://wg21.link/alg.nth.element>`_ std::nth_element Nikolas Klauser |Not Started|
42 | `[alg.sort] <https://wg21.link/alg.sort>`_ std::partial_sort Nikolas Klauser |Not Started|
43 | `[alg.sort] <https://wg21.link/alg.sort>`_ std::partial_sort_copy Nikolas Klauser |Not Started|
44 | `[alg.partitions] <https://wg21.link/alg.partitions>`_ std::partition Nikolas Klauser |Not Started|
45 | `[alg.partitions] <https://wg21.link/alg.partitions>`_ std::partition_copy Nikolas Klauser |Not Started|
46 | `[reduce] <https://wg21.link/reduce>`_ std::reduce Nikolas Klauser |Complete|
47 | `[alg.remove] <https://wg21.link/alg.remove>`_ std::remove Nikolas Klauser |Not Started|
48 | `[alg.remove] <https://wg21.link/alg.remove>`_ std::remove_copy Nikolas Klauser |Not Started|
49 | `[alg.remove] <https://wg21.link/alg.remove>`_ std::remove_copy_if Nikolas Klauser |Not Started|
50 | `[alg.remove] <https://wg21.link/alg.remove>`_ std::remove_if Nikolas Klauser |Not Started|
51 | `[alg.replace] <https://wg21.link/alg.replace>`_ std::replace Nikolas Klauser |Complete|
52 | `[alg.replace] <https://wg21.link/alg.replace>`_ std::replace_copy Nikolas Klauser |Complete|
53 | `[alg.replace] <https://wg21.link/alg.replace>`_ std::replace_copy_if Nikolas Klauser |Complete|
54 | `[alg.replace] <https://wg21.link/alg.replace>`_ std::replace_if Nikolas Klauser |Complete|
55 | `[alg.reverse] <https://wg21.link/alg.reverse>`_ std::reverse Nikolas Klauser |Not Started|
56 | `[alg.reverse] <https://wg21.link/alg.reverse>`_ std::reverse_copy Nikolas Klauser |Not Started|
57 | `[alg.rotate] <https://wg21.link/alg.rotate>`_ std::rotate Nikolas Klauser |Not Started|
58 | `[alg.rotate] <https://wg21.link/alg.rotate>`_ std::rotate_copy Nikolas Klauser |Not Started|
59 | `[alg.search] <https://wg21.link/alg.search>`_ std::search Nikolas Klauser |Not Started|
60 | `[alg.search] <https://wg21.link/alg.search>`_ std::search_n Nikolas Klauser |Not Started|
61 | `[alg.set.operations] <https://wg21.link/alg.set.operations>`_ std::set_difference Nikolas Klauser |Not Started|
62 | `[alg.set.operations] <https://wg21.link/alg.set.operations>`_ std::set_intersection Nikolas Klauser |Not Started|
63 | `[alg.set.operations] <https://wg21.link/alg.set.operations>`_ std::set_symmetric_difference Nikolas Klauser |Not Started|
64 | `[alg.set.operations] <https://wg21.link/alg.set.operations>`_ std::set_union Nikolas Klauser |Not Started|
65 | `[alg.sort] <https://wg21.link/alg.sort>`_ std::sort Nikolas Klauser |Not Started|
66 | `[alg.partitions] <https://wg21.link/alg.partitions>`_ std::stable_partition Nikolas Klauser |Not Started|
67 | `[alg.sort] <https://wg21.link/alg.sort>`_ std::stable_sort Nikolas Klauser |Complete|
68 | `[alg.swap] <https://wg21.link/alg.swap>`_ std::swap_ranges Nikolas Klauser |Not Started|
69 | `[alg.transform] <https://wg21.link/alg.transform>`_ std::transform Nikolas Klauser |Complete|
70 | `[alg.transform.exclusive.scan] <https://wg21.link/alg.transform.exclusive.scan>`_ std::transform_exclusive_scan Nikolas Klauser |Not Started|
71 | `[alg.transform.inclusive.scan] <https://wg21.link/alg.transform.inclusive.scan>`_ std::transform_inclusive_scan Nikolas Klauser |Not Started|
72 | `[transform.reduce] <https://wg21.link/transform.reduce>`_ std::transform_reduce Nikolas Klauser |Complete|
73 | `[uninitialized.copy] <https://wg21.link/uninitialized.copy>`_ std::uninitialized_copy Nikolas Klauser |Not Started|
74 | `[uninitialized.copy] <https://wg21.link/uninitialized.copy>`_ std::uninitialized_copy_n Nikolas Klauser |Not Started|
75 | `[uninitialized.fill] <https://wg21.link/uninitialized.fill>`_ std::uninitialized_fill Nikolas Klauser |Not Started|
76 | `[uninitialized.fill] <https://wg21.link/uninitialized.fill>`_ std::uninitialized_fill_n Nikolas Klauser |Not Started|
77 | `[uninitialized.move] <https://wg21.link/uninitialized.move>`_ std::uninitialized_move Nikolas Klauser |Not Started|
78 | `[uninitialized.move] <https://wg21.link/uninitialized.move>`_ std::uninitialized_move_n Nikolas Klauser |Not Started|
79 | `[alg.unique] <https://wg21.link/alg.unique>`_ std::unique Nikolas Klauser |Not Started|
80 | `[alg.unique] <https://wg21.link/alg.unique>`_ std::unique_copy Nikolas Klauser |Not Started|

View File

@ -1,4 +1,4 @@
a. ranges-status:
.. ranges-status:
================================
libc++ Ranges Status

View File

@ -47,6 +47,7 @@ Getting Started with libc++
Status/Cxx2c
Status/Format
Status/Parallelism
Status/PSTL
Status/Ranges
Status/Spaceship
Status/Zip