Skip to content

Commit 3ce6f68

Browse files
authored
[libc++][spaceship] Marks P1614 as complete. (#99375)
Implements parts of: - P1902R1 Missing feature-test macros 2017-2019 Completes: - P1614R2 The Mothership has Landed Fixes #100018
1 parent 342328d commit 3ce6f68

File tree

9 files changed

+22
-21
lines changed

9 files changed

+22
-21
lines changed

libcxx/docs/FeatureTestMacroTable.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ Status
290290
---------------------------------------------------------- -----------------
291291
``__cpp_lib_syncbuf`` ``201803L``
292292
---------------------------------------------------------- -----------------
293-
``__cpp_lib_three_way_comparison`` ``201711L``
293+
``__cpp_lib_three_way_comparison`` ``201907L``
294294
---------------------------------------------------------- -----------------
295295
``__cpp_lib_to_address`` ``201711L``
296296
---------------------------------------------------------- -----------------

libcxx/docs/ReleaseNotes/19.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ Implemented Papers
5353
------------------
5454

5555
- P1132R8 - ``out_ptr`` - a scalable output pointer abstraction
56+
- P1614R2 - The Mothership has Landed
5657
- P2637R3 - Member ``visit``
5758
- P2652R2 - Disallow User Specialization of ``allocator_traits``
5859
- P2819R2 - Add ``tuple`` protocol to ``complex``

libcxx/docs/Status/Cxx20.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ Paper Status
4848
.. [#note-P0883.1] P0883: shared_ptr and floating-point changes weren't applied as they themselves aren't implemented yet.
4949
.. [#note-P0883.2] P0883: ``ATOMIC_FLAG_INIT`` was marked deprecated in version 14.0, but was undeprecated with the implementation of LWG3659 in version 15.0.
5050
.. [#note-P0660] P0660: The paper is implemented but the features are experimental and can be enabled via ``-fexperimental-library``.
51+
.. [#note-P1614] P1614: ``std::strong_order(long double, long double)`` is partly implemented.
5152
.. [#note-P0355] P0355: The implementation status is:
5253
5354
* ``Calendars`` mostly done in Clang 7

libcxx/docs/Status/Cxx20Papers.csv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@
123123
"`P1522R1 <https://wg21.link/P1522R1>`__","LWG","Iterator Difference Type and Integer Overflow","Cologne","|Complete|","15.0","|ranges|"
124124
"`P1523R1 <https://wg21.link/P1523R1>`__","LWG","Views and Size Types","Cologne","|Complete|","15.0","|ranges|"
125125
"`P1612R1 <https://wg21.link/P1612R1>`__","LWG","Relocate Endian's Specification","Cologne","|Complete|","10.0"
126-
"`P1614R2 <https://wg21.link/P1614R2>`__","LWG","The Mothership has Landed","Cologne","|In Progress|",""
126+
"`P1614R2 <https://wg21.link/P1614R2>`__","LWG","The Mothership has Landed","Cologne","|Complete| [#note-P1614]_","19.0"
127127
"`P1638R1 <https://wg21.link/P1638R1>`__","LWG","basic_istream_view::iterator should not be copyable","Cologne","|Complete|","16.0","|ranges|"
128128
"`P1643R1 <https://wg21.link/P1643R1>`__","LWG","Add wait/notify to atomic_ref","Cologne","|Complete|","19.0"
129129
"`P1644R0 <https://wg21.link/P1644R0>`__","LWG","Add wait/notify to atomic<shared_ptr>","Cologne","",""

libcxx/docs/Status/SpaceshipPapers.csv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
"Number","Name","Status","First released version"
2-
`P1614R2 <https://wg21.link/P1614R2>`_,The Mothership has Landed,|In Progress|,
2+
`P1614R2 <https://wg21.link/P1614R2>`_,The Mothership has Landed,|Complete|,19.0
33
`P2404R3 <https://wg21.link/P2404R3>`_,"Relaxing ``equality_comparable_with``'s, ``totally_ordered_with``'s, and ``three_way_comparable_with``'s common reference requirements to support move-only types",,
44
`LWG3330 <https://wg21.link/LWG3330>`_,Include ``<compare>`` from most library headers,"|Complete|","13.0"
55
`LWG3347 <https://wg21.link/LWG3347>`_,"``std::pair<T, U>`` now requires ``T`` and ``U`` to be *less-than-comparable*",|Nothing To Do|,

libcxx/include/version

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ __cpp_lib_string_view 202403L <string> <string
238238
__cpp_lib_submdspan 202306L <mdspan>
239239
__cpp_lib_syncbuf 201803L <syncstream>
240240
__cpp_lib_text_encoding 202306L <text_encoding>
241-
__cpp_lib_three_way_comparison 201711L <compare>
241+
__cpp_lib_three_way_comparison 201907L <compare>
242242
__cpp_lib_to_address 201711L <memory>
243243
__cpp_lib_to_array 201907L <array>
244244
__cpp_lib_to_chars 202306L <charconv>
@@ -446,7 +446,7 @@ __cpp_lib_void_t 201411L <type_traits>
446446
# if !defined(_LIBCPP_HAS_NO_EXPERIMENTAL_SYNCSTREAM)
447447
# define __cpp_lib_syncbuf 201803L
448448
# endif
449-
# define __cpp_lib_three_way_comparison 201711L
449+
# define __cpp_lib_three_way_comparison 201907L
450450
# define __cpp_lib_to_address 201711L
451451
# define __cpp_lib_to_array 201907L
452452
# define __cpp_lib_type_identity 201806L

libcxx/test/std/language.support/support.limits/support.limits.general/compare.version.compile.pass.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
// Test the feature test macros defined by <compare>
1717

1818
/* Constant Value
19-
__cpp_lib_three_way_comparison 201711L [C++20]
19+
__cpp_lib_three_way_comparison 201907L [C++20]
2020
*/
2121

2222
#include <compare>
@@ -45,26 +45,26 @@
4545
# ifndef __cpp_lib_three_way_comparison
4646
# error "__cpp_lib_three_way_comparison should be defined in c++20"
4747
# endif
48-
# if __cpp_lib_three_way_comparison != 201711L
49-
# error "__cpp_lib_three_way_comparison should have the value 201711L in c++20"
48+
# if __cpp_lib_three_way_comparison != 201907L
49+
# error "__cpp_lib_three_way_comparison should have the value 201907L in c++20"
5050
# endif
5151

5252
#elif TEST_STD_VER == 23
5353

5454
# ifndef __cpp_lib_three_way_comparison
5555
# error "__cpp_lib_three_way_comparison should be defined in c++23"
5656
# endif
57-
# if __cpp_lib_three_way_comparison != 201711L
58-
# error "__cpp_lib_three_way_comparison should have the value 201711L in c++23"
57+
# if __cpp_lib_three_way_comparison != 201907L
58+
# error "__cpp_lib_three_way_comparison should have the value 201907L in c++23"
5959
# endif
6060

6161
#elif TEST_STD_VER > 23
6262

6363
# ifndef __cpp_lib_three_way_comparison
6464
# error "__cpp_lib_three_way_comparison should be defined in c++26"
6565
# endif
66-
# if __cpp_lib_three_way_comparison != 201711L
67-
# error "__cpp_lib_three_way_comparison should have the value 201711L in c++26"
66+
# if __cpp_lib_three_way_comparison != 201907L
67+
# error "__cpp_lib_three_way_comparison should have the value 201907L in c++26"
6868
# endif
6969

7070
#endif // TEST_STD_VER > 23

libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@
221221
__cpp_lib_submdspan 202306L [C++26]
222222
__cpp_lib_syncbuf 201803L [C++20]
223223
__cpp_lib_text_encoding 202306L [C++26]
224-
__cpp_lib_three_way_comparison 201711L [C++20]
224+
__cpp_lib_three_way_comparison 201907L [C++20]
225225
__cpp_lib_to_address 201711L [C++20]
226226
__cpp_lib_to_array 201907L [C++20]
227227
__cpp_lib_to_chars 201611L [C++17]
@@ -4438,8 +4438,8 @@
44384438
# ifndef __cpp_lib_three_way_comparison
44394439
# error "__cpp_lib_three_way_comparison should be defined in c++20"
44404440
# endif
4441-
# if __cpp_lib_three_way_comparison != 201711L
4442-
# error "__cpp_lib_three_way_comparison should have the value 201711L in c++20"
4441+
# if __cpp_lib_three_way_comparison != 201907L
4442+
# error "__cpp_lib_three_way_comparison should have the value 201907L in c++20"
44434443
# endif
44444444

44454445
# ifndef __cpp_lib_to_address
@@ -6037,8 +6037,8 @@
60376037
# ifndef __cpp_lib_three_way_comparison
60386038
# error "__cpp_lib_three_way_comparison should be defined in c++23"
60396039
# endif
6040-
# if __cpp_lib_three_way_comparison != 201711L
6041-
# error "__cpp_lib_three_way_comparison should have the value 201711L in c++23"
6040+
# if __cpp_lib_three_way_comparison != 201907L
6041+
# error "__cpp_lib_three_way_comparison should have the value 201907L in c++23"
60426042
# endif
60436043

60446044
# ifndef __cpp_lib_to_address
@@ -7960,8 +7960,8 @@
79607960
# ifndef __cpp_lib_three_way_comparison
79617961
# error "__cpp_lib_three_way_comparison should be defined in c++26"
79627962
# endif
7963-
# if __cpp_lib_three_way_comparison != 201711L
7964-
# error "__cpp_lib_three_way_comparison should have the value 201711L in c++26"
7963+
# if __cpp_lib_three_way_comparison != 201907L
7964+
# error "__cpp_lib_three_way_comparison should have the value 201907L in c++26"
79657965
# endif
79667966

79677967
# ifndef __cpp_lib_to_address

libcxx/utils/generate_feature_test_macro_components.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1302,8 +1302,7 @@ def add_version_header(tc):
13021302
},
13031303
{
13041304
"name": "__cpp_lib_three_way_comparison",
1305-
"values": {"c++20": 201711},
1306-
# {"c++20": 201907} # P1614R2 The Mothership has Landed (see P1902R1 Missing feature-test macros 2017-2019)
1305+
"values": {"c++20": 201907},
13071306
"headers": ["compare"],
13081307
},
13091308
{

0 commit comments

Comments
 (0)