Skip to content

Commit

Permalink
[libc++] Update generate_feature_test_macro_components.py to match SD-6.
Browse files Browse the repository at this point in the history
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
  • Loading branch information
Quuxplusone committed Jan 8, 2021
1 parent dd5165a commit 466df17
Show file tree
Hide file tree
Showing 24 changed files with 1,949 additions and 102 deletions.
66 changes: 64 additions & 2 deletions libcxx/docs/FeatureTestMacroTable.rst
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,8 @@ Status
-------------------------------------------------------------------
``__cpp_lib_array_constexpr`` ``201811L``
------------------------------------------------- -----------------
``__cpp_lib_assume_aligned`` *unimplemented*
------------------------------------------------- -----------------
``__cpp_lib_atomic_flag_test`` ``201907L``
------------------------------------------------- -----------------
``__cpp_lib_atomic_float`` *unimplemented*
Expand All @@ -184,48 +186,108 @@ Status
------------------------------------------------- -----------------
``__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``
================================================= =================

Loading

0 comments on commit 466df17

Please sign in to comment.