Skip to content

Commit 35f2207

Browse files
committed
documentation and feature test macro
1 parent 16822ed commit 35f2207

File tree

8 files changed

+23
-52
lines changed

8 files changed

+23
-52
lines changed

libcxx/docs/FeatureTestMacroTable.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,7 @@ Status
350350
---------------------------------------------------------- -----------------
351351
``__cpp_lib_print`` ``202207L``
352352
---------------------------------------------------------- -----------------
353-
``__cpp_lib_ranges_as_const`` *unimplemented*
353+
``__cpp_lib_ranges_as_const`` ``202311L``
354354
---------------------------------------------------------- -----------------
355355
``__cpp_lib_ranges_as_rvalue`` ``202207L``
356356
---------------------------------------------------------- -----------------

libcxx/docs/Status/Cxx23.rst

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,6 @@ Paper Status
4343
.. [#note-P0533R9] P0533R9: ``isfinite``, ``isinf``, ``isnan`` and ``isnormal`` are implemented.
4444
.. [#note-P1413R3] P1413R3: ``std::aligned_storage_t`` and ``std::aligned_union_t`` are marked deprecated, but
4545
clang doesn't issue a diagnostic for deprecated using template declarations.
46-
.. [#note-P2278R4] P2278R4: ``basic_const_iterator`` has been implemented, and the const range accessors
47-
(``cbegin``, ``cend``, ``crbegin``, ``crend``) have been updated to return this new type.
48-
However, the changes to ``cdata`` and ``span``, and ``const_view``, have not yet been implemented.
4946
.. [#note-P2520R0] P2520R0: Libc++ implemented this paper as a DR in C++20 as well.
5047
.. [#note-P2711R1] P2711R1: ``join_with_view`` hasn't been done yet since this type isn't implemented yet.
5148
.. [#note-P2770R0] P2770R0: ``join_with_view`` hasn't been done yet since this type isn't implemented yet.

libcxx/docs/Status/Cxx23Papers.csv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@
6161
"`P1899R3 <https://wg21.link/P1899R3>`__","``stride_view``","July 2022","","","|ranges|"
6262
"`P2093R14 <https://wg21.link/P2093R14>`__","Formatted output","July 2022","|Complete|","18.0","|format|"
6363
"`P2165R4 <https://wg21.link/P2165R4>`__","Compatibility between ``tuple``, ``pair`` and ``tuple-like`` objects","July 2022","","",""
64-
"`P2278R4 <https://wg21.link/P2278R4>`__","``cbegin`` should always return a constant iterator","July 2022","|In progress| [#note-P2278R4]","","|ranges|"
64+
"`P2278R4 <https://wg21.link/P2278R4>`__","``cbegin`` should always return a constant iterator","July 2022","|Complete|","20.0","|ranges|"
6565
"`P2286R8 <https://wg21.link/P2286R8>`__","Formatting Ranges","July 2022","|Complete|","16.0","|format| |ranges|"
6666
"`P2291R3 <https://wg21.link/P2291R3>`__","Add Constexpr Modifiers to Functions ``to_chars`` and ``from_chars`` for Integral Types in ``<charconv>`` Header","July 2022","|Complete|","16.0",""
6767
"`P2302R4 <https://wg21.link/P2302R4>`__","``std::ranges::contains``","July 2022","|Complete|","19.0","|ranges|"

libcxx/docs/Status/Cxx2c.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ Paper Status
4545
.. [#note-P2422R1] Libc++ keeps the ``nodiscard`` attributes as a conforming extension.
4646
.. [#note-P2997R1] This paper is applied as DR against C++20. (MSVC STL and libstdc++ will do the same.)
4747
.. [#note-P2836R1] This paper is applies as DR against C++23 (MSVC STL and libstdc++ have done the same);
48-
The feature macro is not yet defined, since other features from the original paper have not been completed.
4948
5049
.. _issues-status-cxx2c:
5150

libcxx/include/version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -480,7 +480,7 @@ __cpp_lib_void_t 201411L <type_traits>
480480
# define __cpp_lib_optional 202110L
481481
# define __cpp_lib_out_ptr 202106L
482482
# define __cpp_lib_print 202207L
483-
// # define __cpp_lib_ranges_as_const 202311L
483+
# define __cpp_lib_ranges_as_const 202311L
484484
# define __cpp_lib_ranges_as_rvalue 202207L
485485
// # define __cpp_lib_ranges_chunk 202202L
486486
# define __cpp_lib_ranges_chunk_by 202202L

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

Lines changed: 10 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -249,17 +249,11 @@
249249
# error "__cpp_lib_ranges should have the value 202207L in c++23"
250250
# endif
251251

252-
# if !defined(_LIBCPP_VERSION)
253-
# ifndef __cpp_lib_ranges_as_const
254-
# error "__cpp_lib_ranges_as_const should be defined in c++23"
255-
# endif
256-
# if __cpp_lib_ranges_as_const != 202311L
257-
# error "__cpp_lib_ranges_as_const should have the value 202311L in c++23"
258-
# endif
259-
# else // _LIBCPP_VERSION
260-
# ifdef __cpp_lib_ranges_as_const
261-
# error "__cpp_lib_ranges_as_const should not be defined because it is unimplemented in libc++!"
262-
# endif
252+
# ifndef __cpp_lib_ranges_as_const
253+
# error "__cpp_lib_ranges_as_const should be defined in c++23"
254+
# endif
255+
# if __cpp_lib_ranges_as_const != 202311L
256+
# error "__cpp_lib_ranges_as_const should have the value 202311L in c++23"
263257
# endif
264258

265259
# ifndef __cpp_lib_ranges_as_rvalue
@@ -368,17 +362,11 @@
368362
# error "__cpp_lib_ranges should have the value 202207L in c++26"
369363
# endif
370364

371-
# if !defined(_LIBCPP_VERSION)
372-
# ifndef __cpp_lib_ranges_as_const
373-
# error "__cpp_lib_ranges_as_const should be defined in c++26"
374-
# endif
375-
# if __cpp_lib_ranges_as_const != 202311L
376-
# error "__cpp_lib_ranges_as_const should have the value 202311L in c++26"
377-
# endif
378-
# else // _LIBCPP_VERSION
379-
# ifdef __cpp_lib_ranges_as_const
380-
# error "__cpp_lib_ranges_as_const should not be defined because it is unimplemented in libc++!"
381-
# endif
365+
# ifndef __cpp_lib_ranges_as_const
366+
# error "__cpp_lib_ranges_as_const should be defined in c++26"
367+
# endif
368+
# if __cpp_lib_ranges_as_const != 202311L
369+
# error "__cpp_lib_ranges_as_const should have the value 202311L in c++26"
382370
# endif
383371

384372
# ifndef __cpp_lib_ranges_as_rvalue

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

Lines changed: 10 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5623,17 +5623,11 @@
56235623
# error "__cpp_lib_ranges should have the value 202207L in c++23"
56245624
# endif
56255625

5626-
# if !defined(_LIBCPP_VERSION)
5627-
# ifndef __cpp_lib_ranges_as_const
5628-
# error "__cpp_lib_ranges_as_const should be defined in c++23"
5629-
# endif
5630-
# if __cpp_lib_ranges_as_const != 202311L
5631-
# error "__cpp_lib_ranges_as_const should have the value 202311L in c++23"
5632-
# endif
5633-
# else // _LIBCPP_VERSION
5634-
# ifdef __cpp_lib_ranges_as_const
5635-
# error "__cpp_lib_ranges_as_const should not be defined because it is unimplemented in libc++!"
5636-
# endif
5626+
# ifndef __cpp_lib_ranges_as_const
5627+
# error "__cpp_lib_ranges_as_const should be defined in c++23"
5628+
# endif
5629+
# if __cpp_lib_ranges_as_const != 202311L
5630+
# error "__cpp_lib_ranges_as_const should have the value 202311L in c++23"
56375631
# endif
56385632

56395633
# ifndef __cpp_lib_ranges_as_rvalue
@@ -7474,17 +7468,11 @@
74747468
# error "__cpp_lib_ranges should have the value 202207L in c++26"
74757469
# endif
74767470

7477-
# if !defined(_LIBCPP_VERSION)
7478-
# ifndef __cpp_lib_ranges_as_const
7479-
# error "__cpp_lib_ranges_as_const should be defined in c++26"
7480-
# endif
7481-
# if __cpp_lib_ranges_as_const != 202311L
7482-
# error "__cpp_lib_ranges_as_const should have the value 202311L in c++26"
7483-
# endif
7484-
# else // _LIBCPP_VERSION
7485-
# ifdef __cpp_lib_ranges_as_const
7486-
# error "__cpp_lib_ranges_as_const should not be defined because it is unimplemented in libc++!"
7487-
# endif
7471+
# ifndef __cpp_lib_ranges_as_const
7472+
# error "__cpp_lib_ranges_as_const should be defined in c++26"
7473+
# endif
7474+
# if __cpp_lib_ranges_as_const != 202311L
7475+
# error "__cpp_lib_ranges_as_const should have the value 202311L in c++26"
74887476
# endif
74897477

74907478
# ifndef __cpp_lib_ranges_as_rvalue

libcxx/utils/generate_feature_test_macro_components.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1003,7 +1003,6 @@ def add_version_header(tc):
10031003
"c++23": 202311 # DR P2836R1 std::basic_const_iterator should follow its underlying type’s convertibility
10041004
},
10051005
"headers": ["ranges"],
1006-
"unimplemented": True,
10071006
},
10081007
{
10091008
"name": "__cpp_lib_ranges_as_rvalue",

0 commit comments

Comments
 (0)