Skip to content

Commit 466df17

Browse files
author
Arthur O'Dwyer
committed
[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
1 parent dd5165a commit 466df17

24 files changed

+1949
-102
lines changed

libcxx/docs/FeatureTestMacroTable.rst

Lines changed: 64 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,8 @@ Status
170170
-------------------------------------------------------------------
171171
``__cpp_lib_array_constexpr`` ``201811L``
172172
------------------------------------------------- -----------------
173+
``__cpp_lib_assume_aligned`` *unimplemented*
174+
------------------------------------------------- -----------------
173175
``__cpp_lib_atomic_flag_test`` ``201907L``
174176
------------------------------------------------- -----------------
175177
``__cpp_lib_atomic_float`` *unimplemented*
@@ -184,48 +186,108 @@ Status
184186
------------------------------------------------- -----------------
185187
``__cpp_lib_atomic_wait`` ``201907L``
186188
------------------------------------------------- -----------------
189+
``__cpp_lib_barrier`` ``201907L``
190+
------------------------------------------------- -----------------
187191
``__cpp_lib_bind_front`` *unimplemented*
188192
------------------------------------------------- -----------------
189193
``__cpp_lib_bit_cast`` *unimplemented*
190194
------------------------------------------------- -----------------
195+
``__cpp_lib_bitops`` *unimplemented*
196+
------------------------------------------------- -----------------
197+
``__cpp_lib_bounded_array_traits`` ``201902L``
198+
------------------------------------------------- -----------------
191199
``__cpp_lib_char8_t`` ``201811L``
192200
------------------------------------------------- -----------------
193201
``__cpp_lib_concepts`` *unimplemented*
194202
------------------------------------------------- -----------------
203+
``__cpp_lib_constexpr_algorithms`` *unimplemented*
204+
------------------------------------------------- -----------------
205+
``__cpp_lib_constexpr_complex`` *unimplemented*
206+
------------------------------------------------- -----------------
195207
``__cpp_lib_constexpr_dynamic_alloc`` ``201907L``
196208
------------------------------------------------- -----------------
197-
``__cpp_lib_constexpr_functional`` ``201907L``
209+
``__cpp_lib_constexpr_functional`` *unimplemented*
210+
------------------------------------------------- -----------------
211+
``__cpp_lib_constexpr_iterator`` *unimplemented*
212+
------------------------------------------------- -----------------
213+
``__cpp_lib_constexpr_memory`` *unimplemented*
198214
------------------------------------------------- -----------------
199215
``__cpp_lib_constexpr_numeric`` ``201911L``
200216
------------------------------------------------- -----------------
201-
``__cpp_lib_constexpr_swap_algorithms`` *unimplemented*
217+
``__cpp_lib_constexpr_string`` *unimplemented*
218+
------------------------------------------------- -----------------
219+
``__cpp_lib_constexpr_string_view`` *unimplemented*
220+
------------------------------------------------- -----------------
221+
``__cpp_lib_constexpr_tuple`` *unimplemented*
202222
------------------------------------------------- -----------------
203223
``__cpp_lib_constexpr_utility`` ``201811L``
204224
------------------------------------------------- -----------------
225+
``__cpp_lib_constexpr_vector`` *unimplemented*
226+
------------------------------------------------- -----------------
227+
``__cpp_lib_coroutine`` *unimplemented*
228+
------------------------------------------------- -----------------
205229
``__cpp_lib_destroying_delete`` ``201806L``
206230
------------------------------------------------- -----------------
207231
``__cpp_lib_endian`` ``201907L``
208232
------------------------------------------------- -----------------
209233
``__cpp_lib_erase_if`` ``202002L``
210234
------------------------------------------------- -----------------
235+
``__cpp_lib_execution`` *unimplemented*
236+
------------------------------------------------- -----------------
211237
``__cpp_lib_generic_unordered_lookup`` ``201811L``
212238
------------------------------------------------- -----------------
213239
``__cpp_lib_int_pow2`` ``202002L``
214240
------------------------------------------------- -----------------
241+
``__cpp_lib_integer_comparison_functions`` *unimplemented*
242+
------------------------------------------------- -----------------
215243
``__cpp_lib_interpolate`` ``201902L``
216244
------------------------------------------------- -----------------
217245
``__cpp_lib_is_constant_evaluated`` ``201811L``
218246
------------------------------------------------- -----------------
247+
``__cpp_lib_is_layout_compatible`` *unimplemented*
248+
------------------------------------------------- -----------------
249+
``__cpp_lib_is_nothrow_convertible`` ``201806L``
250+
------------------------------------------------- -----------------
251+
``__cpp_lib_is_pointer_interconvertible`` *unimplemented*
252+
------------------------------------------------- -----------------
253+
``__cpp_lib_jthread`` *unimplemented*
254+
------------------------------------------------- -----------------
255+
``__cpp_lib_latch`` ``201907L``
256+
------------------------------------------------- -----------------
219257
``__cpp_lib_list_remove_return_type`` ``201806L``
220258
------------------------------------------------- -----------------
221259
``__cpp_lib_math_constants`` ``201907L``
222260
------------------------------------------------- -----------------
261+
``__cpp_lib_polymorphic_allocator`` *unimplemented*
262+
------------------------------------------------- -----------------
223263
``__cpp_lib_ranges`` *unimplemented*
224264
------------------------------------------------- -----------------
265+
``__cpp_lib_remove_cvref`` ``201711L``
266+
------------------------------------------------- -----------------
267+
``__cpp_lib_semaphore`` ``201907L``
268+
------------------------------------------------- -----------------
269+
``__cpp_lib_shift`` *unimplemented*
270+
------------------------------------------------- -----------------
271+
``__cpp_lib_smart_ptr_for_overwrite`` *unimplemented*
272+
------------------------------------------------- -----------------
273+
``__cpp_lib_source_location`` *unimplemented*
274+
------------------------------------------------- -----------------
225275
``__cpp_lib_span`` ``202002L``
226276
------------------------------------------------- -----------------
277+
``__cpp_lib_ssize`` ``201902L``
278+
------------------------------------------------- -----------------
279+
``__cpp_lib_starts_ends_with`` ``201711L``
280+
------------------------------------------------- -----------------
281+
``__cpp_lib_string_view`` ``201803L``
282+
------------------------------------------------- -----------------
283+
``__cpp_lib_syncbuf`` *unimplemented*
284+
------------------------------------------------- -----------------
227285
``__cpp_lib_three_way_comparison`` *unimplemented*
228286
------------------------------------------------- -----------------
287+
``__cpp_lib_to_address`` ``201711L``
288+
------------------------------------------------- -----------------
229289
``__cpp_lib_to_array`` ``201907L``
290+
------------------------------------------------- -----------------
291+
``__cpp_lib_unwrap_ref`` ``201811L``
230292
================================================= =================
231293

0 commit comments

Comments
 (0)