[libc++] Update generate_feature_test_macro_components.py to match SD-6.
It's still a little confusing because in many cases C++17 and C++20
have different values, and libc++ implements the C++17 behavior but
not the C++20 behavior; 'unimplemented' can't represent that scenario.
Ultimately we probably ought to completely redesign the script to be
in terms of paper numbers, rather than language revisions, and make
it generate the CSV files like "Cxx2aStatusPaperStatus.csv" as well.
Most newly added macros are unimplemented. I've marked a few as implemented,
though, based on my reading of the code; for example I was pretty sure
`__cpp_lib_latch` is implemented since we have `<latch>`.
Differential Revision: https://reviews.llvm.org/D93830
GitOrigin-RevId: 466df1718e41fe2fca6ce6bd98c01b18f42c05e4
diff --git a/docs/FeatureTestMacroTable.rst b/docs/FeatureTestMacroTable.rst
index 895e96f..377ea58 100644
--- a/docs/FeatureTestMacroTable.rst
+++ b/docs/FeatureTestMacroTable.rst
@@ -170,6 +170,8 @@
-------------------------------------------------------------------
``__cpp_lib_array_constexpr`` ``201811L``
------------------------------------------------- -----------------
+ ``__cpp_lib_assume_aligned`` *unimplemented*
+ ------------------------------------------------- -----------------
``__cpp_lib_atomic_flag_test`` ``201907L``
------------------------------------------------- -----------------
``__cpp_lib_atomic_float`` *unimplemented*
@@ -184,48 +186,108 @@
------------------------------------------------- -----------------
``__cpp_lib_atomic_wait`` ``201907L``
------------------------------------------------- -----------------
+ ``__cpp_lib_barrier`` ``201907L``
+ ------------------------------------------------- -----------------
``__cpp_lib_bind_front`` *unimplemented*
------------------------------------------------- -----------------
``__cpp_lib_bit_cast`` *unimplemented*
------------------------------------------------- -----------------
+ ``__cpp_lib_bitops`` *unimplemented*
+ ------------------------------------------------- -----------------
+ ``__cpp_lib_bounded_array_traits`` ``201902L``
+ ------------------------------------------------- -----------------
``__cpp_lib_char8_t`` ``201811L``
------------------------------------------------- -----------------
``__cpp_lib_concepts`` *unimplemented*
------------------------------------------------- -----------------
+ ``__cpp_lib_constexpr_algorithms`` *unimplemented*
+ ------------------------------------------------- -----------------
+ ``__cpp_lib_constexpr_complex`` *unimplemented*
+ ------------------------------------------------- -----------------
``__cpp_lib_constexpr_dynamic_alloc`` ``201907L``
------------------------------------------------- -----------------
- ``__cpp_lib_constexpr_functional`` ``201907L``
+ ``__cpp_lib_constexpr_functional`` *unimplemented*
+ ------------------------------------------------- -----------------
+ ``__cpp_lib_constexpr_iterator`` *unimplemented*
+ ------------------------------------------------- -----------------
+ ``__cpp_lib_constexpr_memory`` *unimplemented*
------------------------------------------------- -----------------
``__cpp_lib_constexpr_numeric`` ``201911L``
------------------------------------------------- -----------------
- ``__cpp_lib_constexpr_swap_algorithms`` *unimplemented*
+ ``__cpp_lib_constexpr_string`` *unimplemented*
+ ------------------------------------------------- -----------------
+ ``__cpp_lib_constexpr_string_view`` *unimplemented*
+ ------------------------------------------------- -----------------
+ ``__cpp_lib_constexpr_tuple`` *unimplemented*
------------------------------------------------- -----------------
``__cpp_lib_constexpr_utility`` ``201811L``
------------------------------------------------- -----------------
+ ``__cpp_lib_constexpr_vector`` *unimplemented*
+ ------------------------------------------------- -----------------
+ ``__cpp_lib_coroutine`` *unimplemented*
+ ------------------------------------------------- -----------------
``__cpp_lib_destroying_delete`` ``201806L``
------------------------------------------------- -----------------
``__cpp_lib_endian`` ``201907L``
------------------------------------------------- -----------------
``__cpp_lib_erase_if`` ``202002L``
------------------------------------------------- -----------------
+ ``__cpp_lib_execution`` *unimplemented*
+ ------------------------------------------------- -----------------
``__cpp_lib_generic_unordered_lookup`` ``201811L``
------------------------------------------------- -----------------
``__cpp_lib_int_pow2`` ``202002L``
------------------------------------------------- -----------------
+ ``__cpp_lib_integer_comparison_functions`` *unimplemented*
+ ------------------------------------------------- -----------------
``__cpp_lib_interpolate`` ``201902L``
------------------------------------------------- -----------------
``__cpp_lib_is_constant_evaluated`` ``201811L``
------------------------------------------------- -----------------
+ ``__cpp_lib_is_layout_compatible`` *unimplemented*
+ ------------------------------------------------- -----------------
+ ``__cpp_lib_is_nothrow_convertible`` ``201806L``
+ ------------------------------------------------- -----------------
+ ``__cpp_lib_is_pointer_interconvertible`` *unimplemented*
+ ------------------------------------------------- -----------------
+ ``__cpp_lib_jthread`` *unimplemented*
+ ------------------------------------------------- -----------------
+ ``__cpp_lib_latch`` ``201907L``
+ ------------------------------------------------- -----------------
``__cpp_lib_list_remove_return_type`` ``201806L``
------------------------------------------------- -----------------
``__cpp_lib_math_constants`` ``201907L``
------------------------------------------------- -----------------
+ ``__cpp_lib_polymorphic_allocator`` *unimplemented*
+ ------------------------------------------------- -----------------
``__cpp_lib_ranges`` *unimplemented*
------------------------------------------------- -----------------
+ ``__cpp_lib_remove_cvref`` ``201711L``
+ ------------------------------------------------- -----------------
+ ``__cpp_lib_semaphore`` ``201907L``
+ ------------------------------------------------- -----------------
+ ``__cpp_lib_shift`` *unimplemented*
+ ------------------------------------------------- -----------------
+ ``__cpp_lib_smart_ptr_for_overwrite`` *unimplemented*
+ ------------------------------------------------- -----------------
+ ``__cpp_lib_source_location`` *unimplemented*
+ ------------------------------------------------- -----------------
``__cpp_lib_span`` ``202002L``
------------------------------------------------- -----------------
+ ``__cpp_lib_ssize`` ``201902L``
+ ------------------------------------------------- -----------------
+ ``__cpp_lib_starts_ends_with`` ``201711L``
+ ------------------------------------------------- -----------------
+ ``__cpp_lib_string_view`` ``201803L``
+ ------------------------------------------------- -----------------
+ ``__cpp_lib_syncbuf`` *unimplemented*
+ ------------------------------------------------- -----------------
``__cpp_lib_three_way_comparison`` *unimplemented*
------------------------------------------------- -----------------
+ ``__cpp_lib_to_address`` ``201711L``
+ ------------------------------------------------- -----------------
``__cpp_lib_to_array`` ``201907L``
+ ------------------------------------------------- -----------------
+ ``__cpp_lib_unwrap_ref`` ``201811L``
================================================= =================