Skip to content

Commit b71feb3

Browse files
committed
[libc++][spaceship] Marks P1614 as complete.
Implements parts of: - P1902R1 Missing feature-test macros 2017-2019 Completes: - P1614R2 The Mothership has Landed
1 parent 00df20a commit b71feb3

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
@@ -38,6 +38,7 @@ What's New in Libc++ 19.0.0?
3838
Implemented Papers
3939
------------------
4040

41+
- P1614R2 - The Mothership has Landed
4142
- P2637R3 - Member ``visit``
4243
- P2652R2 - Disallow User Specialization of ``allocator_traits``
4344
- 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
@@ -236,7 +236,7 @@ __cpp_lib_string_view 201803L <string> <string
236236
__cpp_lib_submdspan 202306L <mdspan>
237237
__cpp_lib_syncbuf 201803L <syncstream>
238238
__cpp_lib_text_encoding 202306L <text_encoding>
239-
__cpp_lib_three_way_comparison 201711L <compare>
239+
__cpp_lib_three_way_comparison 201907L <compare>
240240
__cpp_lib_to_address 201711L <memory>
241241
__cpp_lib_to_array 201907L <array>
242242
__cpp_lib_to_chars 202306L <charconv>
@@ -444,7 +444,7 @@ __cpp_lib_void_t 201411L <type_traits>
444444
# if !defined(_LIBCPP_HAS_NO_EXPERIMENTAL_SYNCSTREAM)
445445
# define __cpp_lib_syncbuf 201803L
446446
# endif
447-
# define __cpp_lib_three_way_comparison 201711L
447+
# define __cpp_lib_three_way_comparison 201907L
448448
# define __cpp_lib_to_address 201711L
449449
# define __cpp_lib_to_array 201907L
450450
# 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
@@ -219,7 +219,7 @@
219219
__cpp_lib_submdspan 202306L [C++26]
220220
__cpp_lib_syncbuf 201803L [C++20]
221221
__cpp_lib_text_encoding 202306L [C++26]
222-
__cpp_lib_three_way_comparison 201711L [C++20]
222+
__cpp_lib_three_way_comparison 201907L [C++20]
223223
__cpp_lib_to_address 201711L [C++20]
224224
__cpp_lib_to_array 201907L [C++20]
225225
__cpp_lib_to_chars 201611L [C++17]
@@ -4420,8 +4420,8 @@
44204420
# ifndef __cpp_lib_three_way_comparison
44214421
# error "__cpp_lib_three_way_comparison should be defined in c++20"
44224422
# endif
4423-
# if __cpp_lib_three_way_comparison != 201711L
4424-
# error "__cpp_lib_three_way_comparison should have the value 201711L in c++20"
4423+
# if __cpp_lib_three_way_comparison != 201907L
4424+
# error "__cpp_lib_three_way_comparison should have the value 201907L in c++20"
44254425
# endif
44264426

44274427
# ifndef __cpp_lib_to_address
@@ -6018,8 +6018,8 @@
60186018
# ifndef __cpp_lib_three_way_comparison
60196019
# error "__cpp_lib_three_way_comparison should be defined in c++23"
60206020
# endif
6021-
# if __cpp_lib_three_way_comparison != 201711L
6022-
# error "__cpp_lib_three_way_comparison should have the value 201711L in c++23"
6021+
# if __cpp_lib_three_way_comparison != 201907L
6022+
# error "__cpp_lib_three_way_comparison should have the value 201907L in c++23"
60236023
# endif
60246024

60256025
# ifndef __cpp_lib_to_address
@@ -7940,8 +7940,8 @@
79407940
# ifndef __cpp_lib_three_way_comparison
79417941
# error "__cpp_lib_three_way_comparison should be defined in c++26"
79427942
# endif
7943-
# if __cpp_lib_three_way_comparison != 201711L
7944-
# error "__cpp_lib_three_way_comparison should have the value 201711L in c++26"
7943+
# if __cpp_lib_three_way_comparison != 201907L
7944+
# error "__cpp_lib_three_way_comparison should have the value 201907L in c++26"
79457945
# endif
79467946

79477947
# 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
@@ -1297,8 +1297,7 @@ def add_version_header(tc):
12971297
},
12981298
{
12991299
"name": "__cpp_lib_three_way_comparison",
1300-
"values": {"c++20": 201711},
1301-
# {"c++20": 201907} # P1614R2 The Mothership has Landed (see P1902R1 Missing feature-test macros 2017-2019)
1300+
"values": {"c++20": 201907},
13021301
"headers": ["compare"],
13031302
},
13041303
{

0 commit comments

Comments
 (0)