libc++ Spaceship Operator Status (operator<=>)¶
Overview¶
This document contains the status of the C++20 spaceship operator support in libc++. It is used to track both the status of the sub-projects of the effort and who is assigned to these sub-projects. This is imperative to effective implementation so that work is not duplicated and implementors are not blocked by each other.
If you are interested in contributing to this effort, please send a message to the #libcxx channel in the LLVM discord. Please do not start working on any of the assigned items below.
Sub-Projects in the Implementation Effort¶
Section |
Description |
Dependencies |
Assignee |
Complete |
---|---|---|---|---|
[cmp.concept] |
Kent Ross |
Complete |
||
None |
Unassigned |
Nothing To Do |
||
remove ops typeinfo
|
None |
Adrian Vogelsgesang |
Complete |
|
[cmp.concept]
[cmp.result]
[cmp.object]
[cmp.alg]
|
Unassigned |
Complete |
||
removed by P1959R0
|
None |
Unassigned |
Nothing To Do |
|
remove ops *_ordering
|
None |
Christopher Di Bella |
Complete |
|
None |
Ruslan Arutyunyan |
Complete |
||
None |
Arthur O’Dwyer |
Complete |
||
[cmp.concept] |
Arthur O’Dwyer |
Complete |
||
None |
Arthur O’Dwyer |
Complete [1] |
||
[comparisons.three.way] |
Chuanqi Xu |
Complete |
||
[syserr.errcat.nonvirtuals]
[syserr.compare]
|
Unassigned |
Complete |
||
[comparisons.three.way] |
Adrian Vogelsgesang |
Complete |
||
None |
Adrian Vogelsgesang |
Complete |
||
[expos.only.func] |
Kent Ross |
Complete |
||
[expos.only.func] |
Kent Ross |
Complete |
||
None |
Hristo Hristov |
Complete |
||
None |
Kent Ross |
Complete |
||
remove ops bitset
|
None |
Hristo Hristov |
Complete |
|
None |
Unassigned |
Complete |
||
remove ops allocator
|
None |
Hristo Hristov |
Complete |
|
[comparisons.three.way] |
Adrian Vogelsgesang |
Complete |
||
[comparisons.three.way] |
Adrian Vogelsgesang |
Complete |
||
None |
Hristo Hristov |
Complete |
||
remove ops scoped_allocator_adaptor
|
None |
Hristo Hristov |
Complete |
|
remove ops function
|
None |
Hristo Hristov |
Complete |
|
replaced by issue LWG3354
|
None |
Unassigned |
Nothing To Do |
|
removed by issue LWG3380
|
None |
Unassigned |
Nothing To Do |
|
None |
Adrian Vogelsgesang |
Complete |
||
None |
Mark de Wever |
Complete |
||
None |
Mark de Wever |
Complete |
||
None |
Mark de Wever |
Complete |
||
None |
Mark de Wever |
Complete |
||
None |
Mark de Wever |
Complete |
||
[expos.only.func] |
Adrian Vogelsgesang
Hristo Hristov
|
Complete |
||
[expos.only.func] |
Hristo Hristov |
Complete |
||
[expos.only.func] |
Hristo Hristov |
Complete |
||
[expos.only.func] |
Adrian Vogelsgesang |
Complete |
||
[expos.only.func] |
Adrian Vogelsgesang
Hristo Hristov
|
Complete |
||
removed by issue LWG3347
|
None |
Adrian Vogelsgesang
Hristo Hristov
|
Complete |
|
[expos.only.func] |
Hristo Hristov |
Complete |
||
[expos.only.func] |
Hristo Hristov |
Complete |
||
remove ops unordered_map
remove ops unordered_multimap
|
None |
Hristo Hristov |
Complete |
|
remove ops unordered_set
remove ops unordered_multiset
|
None |
Hristo Hristov |
Complete |
|
None |
Hristo Hristov |
Complete |
||
None |
Hristo Hristov |
Complete |
||
None |
Hristo Hristov |
Complete |
||
None |
Hristo Hristov |
Complete |
||
None |
Unassigned |
Complete |
||
None |
Mikhail Maltsev |
Complete |
||
None |
Arthur O’Dwyer |
Complete |
||
None |
Zoe Carver |
Complete |
||
None |
Zoe Carver |
Complete |
||
None |
Zoe Carver |
Complete |
||
remove ops istream_iterator
|
None |
Konstantin Varlamov |
Complete |
|
remove ops istreambuf_iterator
|
None |
Konstantin Varlamov |
Complete |
|
[concepts.cmp] |
Arthur O’Dwyer |
Complete |
||
remove ops iota_view::sentinel
|
None |
Zoe Carver |
Complete |
|
remove ops filter_view::iterator
|
None |
Louis Dionne |
Complete |
|
remove ops filter_view::sentinel
|
None |
Louis Dionne |
Complete |
|
[concepts.cmp] |
Arthur O’Dwyer |
Complete |
||
remove ops transform_view::sentinel
|
None |
Zoe Carver |
Complete |
|
remove ops take_view::sentinel
|
None |
Konstantin Varlamov |
Complete |
|
remove ops join_view::iterator
|
None |
Zoe Carver |
Complete |
|
remove ops join_view::sentinel
|
None |
Zoe Carver |
Complete |
|
remove ops split_view::outer_iterator
|
None |
Hui Xie |
Complete |
|
remove ops split_view::inner_iterator
|
None |
Hui Xie |
Complete |
|
[comparisons.three.way] |
Adrian Vogelsgesang |
Complete |
||
remove ops complex
|
None |
Hristo Hristov |
Complete |
|
None |
Hristo Hristov |
Complete |
||
None |
Mark de Wever |
Complete |
||
None |
Hristo Hristov |
Complete |
||
None |
Hristo Hristov |
Complete |
||
None |
Mark de Wever |
Complete |
||
None |
Hristo Hristov |
Complete |
||
chrono::time_zone |
Mark de Wever |
Complete |
||
chrono::zoned_time |
Mark de Wever |
Complete |
||
chrono::time_leap_seconds |
Mark de Wever |
Complete |
||
chrono::time_zone_link |
Mark de Wever |
Complete |
||
remove ops locale
|
None |
Hristo Hristov |
Complete |
|
None |
Adrian Vogelsgesang |
Complete |
||
None |
Adrian Vogelsgesang |
Complete |
||
None |
Hristo Hristov |
Complete |
||
None |
Adrian Vogelsgesang |
Complete |
||
None |
Mark de Wever |
Complete |
||
None |
Mark de Wever |
Complete |
||
remove ops match_results
|
None |
Mark de Wever |
Complete |
|
remove ops regex_iterator
|
None |
Mark de Wever |
Complete |
|
remove ops regex_token_iterator
|
None |
Mark de Wever |
Complete |
|
None |
Adrian Vogelsgesang |
Complete |
||
Misc (Not part of R1614) |
||||
[concepts.cmp] |
Hui Xie |
Complete |
||
None |
Nikolas Klauser |
In Progress |
||
[alg.three.way] |
Nikolas Klauser |
In Progress |
Note
Misc. Items and TODOs¶
(Note: files with required updates will contain the TODO at the beginning of the list item so they can be easily found via global search.)
Paper and Issue Status¶
Number |
Name |
Status |
First released version |
---|---|---|---|
The Mothership has Landed |
Complete |
19.0 |
|
Relaxing |
|||
Include |
Complete |
13.0 |
|
|
Nothing To Do |
||
Simplify return type of |
Nothing To Do |
||
|
Nothing To Do |
||
|
Nothing To Do |
||
Definition for three-way comparison needs to be updated |
Nothing To Do |
||
Symmetry for spaceship |
Complete |
7.0 |
|
Consistency improvements for |
|||
|