xref: /netbsd-src/external/apache2/llvm/dist/libcxx/docs/FeatureTestMacroTable.rst (revision 4d6fc14bc9b0c5bf3e30be318c143ee82cadd108)
1*4d6fc14bSjoerg.. _FeatureTestMacroTable:
2*4d6fc14bSjoerg
3*4d6fc14bSjoerg==========================
4*4d6fc14bSjoergFeature Test Macro Support
5*4d6fc14bSjoerg==========================
6*4d6fc14bSjoerg
7*4d6fc14bSjoerg.. contents::
8*4d6fc14bSjoerg   :local:
9*4d6fc14bSjoerg
10*4d6fc14bSjoergOverview
11*4d6fc14bSjoerg========
12*4d6fc14bSjoerg
13*4d6fc14bSjoergThis file documents the feature test macros currently supported by libc++.
14*4d6fc14bSjoerg
15*4d6fc14bSjoerg.. _feature-status:
16*4d6fc14bSjoerg
17*4d6fc14bSjoergStatus
18*4d6fc14bSjoerg======
19*4d6fc14bSjoerg
20*4d6fc14bSjoerg.. table:: Current Status
21*4d6fc14bSjoerg     :name: feature-status-table
22*4d6fc14bSjoerg     :widths: auto
23*4d6fc14bSjoerg
24*4d6fc14bSjoerg    ================================================= =================
25*4d6fc14bSjoerg    Macro Name                                        Value
26*4d6fc14bSjoerg    ================================================= =================
27*4d6fc14bSjoerg    **C++ 14**
28*4d6fc14bSjoerg    -------------------------------------------------------------------
29*4d6fc14bSjoerg    ``__cpp_lib_chrono_udls``                         ``201304L``
30*4d6fc14bSjoerg    ------------------------------------------------- -----------------
31*4d6fc14bSjoerg    ``__cpp_lib_complex_udls``                        ``201309L``
32*4d6fc14bSjoerg    ------------------------------------------------- -----------------
33*4d6fc14bSjoerg    ``__cpp_lib_exchange_function``                   ``201304L``
34*4d6fc14bSjoerg    ------------------------------------------------- -----------------
35*4d6fc14bSjoerg    ``__cpp_lib_generic_associative_lookup``          ``201304L``
36*4d6fc14bSjoerg    ------------------------------------------------- -----------------
37*4d6fc14bSjoerg    ``__cpp_lib_integer_sequence``                    ``201304L``
38*4d6fc14bSjoerg    ------------------------------------------------- -----------------
39*4d6fc14bSjoerg    ``__cpp_lib_integral_constant_callable``          ``201304L``
40*4d6fc14bSjoerg    ------------------------------------------------- -----------------
41*4d6fc14bSjoerg    ``__cpp_lib_is_final``                            ``201402L``
42*4d6fc14bSjoerg    ------------------------------------------------- -----------------
43*4d6fc14bSjoerg    ``__cpp_lib_is_null_pointer``                     ``201309L``
44*4d6fc14bSjoerg    ------------------------------------------------- -----------------
45*4d6fc14bSjoerg    ``__cpp_lib_make_reverse_iterator``               ``201402L``
46*4d6fc14bSjoerg    ------------------------------------------------- -----------------
47*4d6fc14bSjoerg    ``__cpp_lib_make_unique``                         ``201304L``
48*4d6fc14bSjoerg    ------------------------------------------------- -----------------
49*4d6fc14bSjoerg    ``__cpp_lib_null_iterators``                      ``201304L``
50*4d6fc14bSjoerg    ------------------------------------------------- -----------------
51*4d6fc14bSjoerg    ``__cpp_lib_quoted_string_io``                    ``201304L``
52*4d6fc14bSjoerg    ------------------------------------------------- -----------------
53*4d6fc14bSjoerg    ``__cpp_lib_result_of_sfinae``                    ``201210L``
54*4d6fc14bSjoerg    ------------------------------------------------- -----------------
55*4d6fc14bSjoerg    ``__cpp_lib_robust_nonmodifying_seq_ops``         ``201304L``
56*4d6fc14bSjoerg    ------------------------------------------------- -----------------
57*4d6fc14bSjoerg    ``__cpp_lib_shared_timed_mutex``                  ``201402L``
58*4d6fc14bSjoerg    ------------------------------------------------- -----------------
59*4d6fc14bSjoerg    ``__cpp_lib_string_udls``                         ``201304L``
60*4d6fc14bSjoerg    ------------------------------------------------- -----------------
61*4d6fc14bSjoerg    ``__cpp_lib_transformation_trait_aliases``        ``201304L``
62*4d6fc14bSjoerg    ------------------------------------------------- -----------------
63*4d6fc14bSjoerg    ``__cpp_lib_transparent_operators``               ``201210L``
64*4d6fc14bSjoerg    ------------------------------------------------- -----------------
65*4d6fc14bSjoerg    ``__cpp_lib_tuple_element_t``                     ``201402L``
66*4d6fc14bSjoerg    ------------------------------------------------- -----------------
67*4d6fc14bSjoerg    ``__cpp_lib_tuples_by_type``                      ``201304L``
68*4d6fc14bSjoerg    ------------------------------------------------- -----------------
69*4d6fc14bSjoerg    **C++ 17**
70*4d6fc14bSjoerg    -------------------------------------------------------------------
71*4d6fc14bSjoerg    ``__cpp_lib_addressof_constexpr``                 ``201603L``
72*4d6fc14bSjoerg    ------------------------------------------------- -----------------
73*4d6fc14bSjoerg    ``__cpp_lib_allocator_traits_is_always_equal``    ``201411L``
74*4d6fc14bSjoerg    ------------------------------------------------- -----------------
75*4d6fc14bSjoerg    ``__cpp_lib_any``                                 ``201606L``
76*4d6fc14bSjoerg    ------------------------------------------------- -----------------
77*4d6fc14bSjoerg    ``__cpp_lib_apply``                               ``201603L``
78*4d6fc14bSjoerg    ------------------------------------------------- -----------------
79*4d6fc14bSjoerg    ``__cpp_lib_array_constexpr``                     ``201603L``
80*4d6fc14bSjoerg    ------------------------------------------------- -----------------
81*4d6fc14bSjoerg    ``__cpp_lib_as_const``                            ``201510L``
82*4d6fc14bSjoerg    ------------------------------------------------- -----------------
83*4d6fc14bSjoerg    ``__cpp_lib_atomic_is_always_lock_free``          ``201603L``
84*4d6fc14bSjoerg    ------------------------------------------------- -----------------
85*4d6fc14bSjoerg    ``__cpp_lib_bool_constant``                       ``201505L``
86*4d6fc14bSjoerg    ------------------------------------------------- -----------------
87*4d6fc14bSjoerg    ``__cpp_lib_boyer_moore_searcher``                *unimplemented*
88*4d6fc14bSjoerg    ------------------------------------------------- -----------------
89*4d6fc14bSjoerg    ``__cpp_lib_byte``                                ``201603L``
90*4d6fc14bSjoerg    ------------------------------------------------- -----------------
91*4d6fc14bSjoerg    ``__cpp_lib_chrono``                              ``201611L``
92*4d6fc14bSjoerg    ------------------------------------------------- -----------------
93*4d6fc14bSjoerg    ``__cpp_lib_clamp``                               ``201603L``
94*4d6fc14bSjoerg    ------------------------------------------------- -----------------
95*4d6fc14bSjoerg    ``__cpp_lib_enable_shared_from_this``             ``201603L``
96*4d6fc14bSjoerg    ------------------------------------------------- -----------------
97*4d6fc14bSjoerg    ``__cpp_lib_execution``                           *unimplemented*
98*4d6fc14bSjoerg    ------------------------------------------------- -----------------
99*4d6fc14bSjoerg    ``__cpp_lib_filesystem``                          ``201703L``
100*4d6fc14bSjoerg    ------------------------------------------------- -----------------
101*4d6fc14bSjoerg    ``__cpp_lib_gcd_lcm``                             ``201606L``
102*4d6fc14bSjoerg    ------------------------------------------------- -----------------
103*4d6fc14bSjoerg    ``__cpp_lib_hardware_interference_size``          *unimplemented*
104*4d6fc14bSjoerg    ------------------------------------------------- -----------------
105*4d6fc14bSjoerg    ``__cpp_lib_has_unique_object_representations``   ``201606L``
106*4d6fc14bSjoerg    ------------------------------------------------- -----------------
107*4d6fc14bSjoerg    ``__cpp_lib_hypot``                               ``201603L``
108*4d6fc14bSjoerg    ------------------------------------------------- -----------------
109*4d6fc14bSjoerg    ``__cpp_lib_incomplete_container_elements``       ``201505L``
110*4d6fc14bSjoerg    ------------------------------------------------- -----------------
111*4d6fc14bSjoerg    ``__cpp_lib_invoke``                              ``201411L``
112*4d6fc14bSjoerg    ------------------------------------------------- -----------------
113*4d6fc14bSjoerg    ``__cpp_lib_is_aggregate``                        ``201703L``
114*4d6fc14bSjoerg    ------------------------------------------------- -----------------
115*4d6fc14bSjoerg    ``__cpp_lib_is_invocable``                        ``201703L``
116*4d6fc14bSjoerg    ------------------------------------------------- -----------------
117*4d6fc14bSjoerg    ``__cpp_lib_is_swappable``                        ``201603L``
118*4d6fc14bSjoerg    ------------------------------------------------- -----------------
119*4d6fc14bSjoerg    ``__cpp_lib_launder``                             ``201606L``
120*4d6fc14bSjoerg    ------------------------------------------------- -----------------
121*4d6fc14bSjoerg    ``__cpp_lib_logical_traits``                      ``201510L``
122*4d6fc14bSjoerg    ------------------------------------------------- -----------------
123*4d6fc14bSjoerg    ``__cpp_lib_make_from_tuple``                     ``201606L``
124*4d6fc14bSjoerg    ------------------------------------------------- -----------------
125*4d6fc14bSjoerg    ``__cpp_lib_map_try_emplace``                     ``201411L``
126*4d6fc14bSjoerg    ------------------------------------------------- -----------------
127*4d6fc14bSjoerg    ``__cpp_lib_math_special_functions``              *unimplemented*
128*4d6fc14bSjoerg    ------------------------------------------------- -----------------
129*4d6fc14bSjoerg    ``__cpp_lib_memory_resource``                     *unimplemented*
130*4d6fc14bSjoerg    ------------------------------------------------- -----------------
131*4d6fc14bSjoerg    ``__cpp_lib_node_extract``                        ``201606L``
132*4d6fc14bSjoerg    ------------------------------------------------- -----------------
133*4d6fc14bSjoerg    ``__cpp_lib_nonmember_container_access``          ``201411L``
134*4d6fc14bSjoerg    ------------------------------------------------- -----------------
135*4d6fc14bSjoerg    ``__cpp_lib_not_fn``                              ``201603L``
136*4d6fc14bSjoerg    ------------------------------------------------- -----------------
137*4d6fc14bSjoerg    ``__cpp_lib_optional``                            ``201606L``
138*4d6fc14bSjoerg    ------------------------------------------------- -----------------
139*4d6fc14bSjoerg    ``__cpp_lib_parallel_algorithm``                  *unimplemented*
140*4d6fc14bSjoerg    ------------------------------------------------- -----------------
141*4d6fc14bSjoerg    ``__cpp_lib_raw_memory_algorithms``               ``201606L``
142*4d6fc14bSjoerg    ------------------------------------------------- -----------------
143*4d6fc14bSjoerg    ``__cpp_lib_sample``                              ``201603L``
144*4d6fc14bSjoerg    ------------------------------------------------- -----------------
145*4d6fc14bSjoerg    ``__cpp_lib_scoped_lock``                         ``201703L``
146*4d6fc14bSjoerg    ------------------------------------------------- -----------------
147*4d6fc14bSjoerg    ``__cpp_lib_shared_mutex``                        ``201505L``
148*4d6fc14bSjoerg    ------------------------------------------------- -----------------
149*4d6fc14bSjoerg    ``__cpp_lib_shared_ptr_arrays``                   ``201611L``
150*4d6fc14bSjoerg    ------------------------------------------------- -----------------
151*4d6fc14bSjoerg    ``__cpp_lib_shared_ptr_weak_type``                ``201606L``
152*4d6fc14bSjoerg    ------------------------------------------------- -----------------
153*4d6fc14bSjoerg    ``__cpp_lib_string_view``                         ``201606L``
154*4d6fc14bSjoerg    ------------------------------------------------- -----------------
155*4d6fc14bSjoerg    ``__cpp_lib_to_chars``                            *unimplemented*
156*4d6fc14bSjoerg    ------------------------------------------------- -----------------
157*4d6fc14bSjoerg    ``__cpp_lib_transparent_operators``               ``201510L``
158*4d6fc14bSjoerg    ------------------------------------------------- -----------------
159*4d6fc14bSjoerg    ``__cpp_lib_type_trait_variable_templates``       ``201510L``
160*4d6fc14bSjoerg    ------------------------------------------------- -----------------
161*4d6fc14bSjoerg    ``__cpp_lib_uncaught_exceptions``                 ``201411L``
162*4d6fc14bSjoerg    ------------------------------------------------- -----------------
163*4d6fc14bSjoerg    ``__cpp_lib_unordered_map_try_emplace``           ``201411L``
164*4d6fc14bSjoerg    ------------------------------------------------- -----------------
165*4d6fc14bSjoerg    ``__cpp_lib_variant``                             ``202102L``
166*4d6fc14bSjoerg    ------------------------------------------------- -----------------
167*4d6fc14bSjoerg    ``__cpp_lib_void_t``                              ``201411L``
168*4d6fc14bSjoerg    ------------------------------------------------- -----------------
169*4d6fc14bSjoerg    **C++ 20**
170*4d6fc14bSjoerg    -------------------------------------------------------------------
171*4d6fc14bSjoerg    ``__cpp_lib_array_constexpr``                     ``201811L``
172*4d6fc14bSjoerg    ------------------------------------------------- -----------------
173*4d6fc14bSjoerg    ``__cpp_lib_assume_aligned``                      *unimplemented*
174*4d6fc14bSjoerg    ------------------------------------------------- -----------------
175*4d6fc14bSjoerg    ``__cpp_lib_atomic_flag_test``                    ``201907L``
176*4d6fc14bSjoerg    ------------------------------------------------- -----------------
177*4d6fc14bSjoerg    ``__cpp_lib_atomic_float``                        *unimplemented*
178*4d6fc14bSjoerg    ------------------------------------------------- -----------------
179*4d6fc14bSjoerg    ``__cpp_lib_atomic_lock_free_type_aliases``       ``201907L``
180*4d6fc14bSjoerg    ------------------------------------------------- -----------------
181*4d6fc14bSjoerg    ``__cpp_lib_atomic_ref``                          *unimplemented*
182*4d6fc14bSjoerg    ------------------------------------------------- -----------------
183*4d6fc14bSjoerg    ``__cpp_lib_atomic_shared_ptr``                   *unimplemented*
184*4d6fc14bSjoerg    ------------------------------------------------- -----------------
185*4d6fc14bSjoerg    ``__cpp_lib_atomic_value_initialization``         *unimplemented*
186*4d6fc14bSjoerg    ------------------------------------------------- -----------------
187*4d6fc14bSjoerg    ``__cpp_lib_atomic_wait``                         ``201907L``
188*4d6fc14bSjoerg    ------------------------------------------------- -----------------
189*4d6fc14bSjoerg    ``__cpp_lib_barrier``                             ``201907L``
190*4d6fc14bSjoerg    ------------------------------------------------- -----------------
191*4d6fc14bSjoerg    ``__cpp_lib_bind_front``                          ``201907L``
192*4d6fc14bSjoerg    ------------------------------------------------- -----------------
193*4d6fc14bSjoerg    ``__cpp_lib_bit_cast``                            *unimplemented*
194*4d6fc14bSjoerg    ------------------------------------------------- -----------------
195*4d6fc14bSjoerg    ``__cpp_lib_bitops``                              *unimplemented*
196*4d6fc14bSjoerg    ------------------------------------------------- -----------------
197*4d6fc14bSjoerg    ``__cpp_lib_bounded_array_traits``                ``201902L``
198*4d6fc14bSjoerg    ------------------------------------------------- -----------------
199*4d6fc14bSjoerg    ``__cpp_lib_char8_t``                             ``201811L``
200*4d6fc14bSjoerg    ------------------------------------------------- -----------------
201*4d6fc14bSjoerg    ``__cpp_lib_concepts``                            ``202002L``
202*4d6fc14bSjoerg    ------------------------------------------------- -----------------
203*4d6fc14bSjoerg    ``__cpp_lib_constexpr_algorithms``                ``201806L``
204*4d6fc14bSjoerg    ------------------------------------------------- -----------------
205*4d6fc14bSjoerg    ``__cpp_lib_constexpr_complex``                   *unimplemented*
206*4d6fc14bSjoerg    ------------------------------------------------- -----------------
207*4d6fc14bSjoerg    ``__cpp_lib_constexpr_dynamic_alloc``             ``201907L``
208*4d6fc14bSjoerg    ------------------------------------------------- -----------------
209*4d6fc14bSjoerg    ``__cpp_lib_constexpr_functional``                ``201907L``
210*4d6fc14bSjoerg    ------------------------------------------------- -----------------
211*4d6fc14bSjoerg    ``__cpp_lib_constexpr_iterator``                  ``201811L``
212*4d6fc14bSjoerg    ------------------------------------------------- -----------------
213*4d6fc14bSjoerg    ``__cpp_lib_constexpr_memory``                    ``201811L``
214*4d6fc14bSjoerg    ------------------------------------------------- -----------------
215*4d6fc14bSjoerg    ``__cpp_lib_constexpr_numeric``                   ``201911L``
216*4d6fc14bSjoerg    ------------------------------------------------- -----------------
217*4d6fc14bSjoerg    ``__cpp_lib_constexpr_string``                    ``201811L``
218*4d6fc14bSjoerg    ------------------------------------------------- -----------------
219*4d6fc14bSjoerg    ``__cpp_lib_constexpr_string_view``               ``201811L``
220*4d6fc14bSjoerg    ------------------------------------------------- -----------------
221*4d6fc14bSjoerg    ``__cpp_lib_constexpr_tuple``                     ``201811L``
222*4d6fc14bSjoerg    ------------------------------------------------- -----------------
223*4d6fc14bSjoerg    ``__cpp_lib_constexpr_utility``                   ``201811L``
224*4d6fc14bSjoerg    ------------------------------------------------- -----------------
225*4d6fc14bSjoerg    ``__cpp_lib_constexpr_vector``                    *unimplemented*
226*4d6fc14bSjoerg    ------------------------------------------------- -----------------
227*4d6fc14bSjoerg    ``__cpp_lib_coroutine``                           *unimplemented*
228*4d6fc14bSjoerg    ------------------------------------------------- -----------------
229*4d6fc14bSjoerg    ``__cpp_lib_destroying_delete``                   ``201806L``
230*4d6fc14bSjoerg    ------------------------------------------------- -----------------
231*4d6fc14bSjoerg    ``__cpp_lib_endian``                              ``201907L``
232*4d6fc14bSjoerg    ------------------------------------------------- -----------------
233*4d6fc14bSjoerg    ``__cpp_lib_erase_if``                            ``202002L``
234*4d6fc14bSjoerg    ------------------------------------------------- -----------------
235*4d6fc14bSjoerg    ``__cpp_lib_execution``                           *unimplemented*
236*4d6fc14bSjoerg    ------------------------------------------------- -----------------
237*4d6fc14bSjoerg    ``__cpp_lib_format``                              *unimplemented*
238*4d6fc14bSjoerg    ------------------------------------------------- -----------------
239*4d6fc14bSjoerg    ``__cpp_lib_generic_unordered_lookup``            ``201811L``
240*4d6fc14bSjoerg    ------------------------------------------------- -----------------
241*4d6fc14bSjoerg    ``__cpp_lib_int_pow2``                            ``202002L``
242*4d6fc14bSjoerg    ------------------------------------------------- -----------------
243*4d6fc14bSjoerg    ``__cpp_lib_integer_comparison_functions``        ``202002L``
244*4d6fc14bSjoerg    ------------------------------------------------- -----------------
245*4d6fc14bSjoerg    ``__cpp_lib_interpolate``                         ``201902L``
246*4d6fc14bSjoerg    ------------------------------------------------- -----------------
247*4d6fc14bSjoerg    ``__cpp_lib_is_constant_evaluated``               ``201811L``
248*4d6fc14bSjoerg    ------------------------------------------------- -----------------
249*4d6fc14bSjoerg    ``__cpp_lib_is_layout_compatible``                *unimplemented*
250*4d6fc14bSjoerg    ------------------------------------------------- -----------------
251*4d6fc14bSjoerg    ``__cpp_lib_is_nothrow_convertible``              ``201806L``
252*4d6fc14bSjoerg    ------------------------------------------------- -----------------
253*4d6fc14bSjoerg    ``__cpp_lib_is_pointer_interconvertible``         *unimplemented*
254*4d6fc14bSjoerg    ------------------------------------------------- -----------------
255*4d6fc14bSjoerg    ``__cpp_lib_jthread``                             *unimplemented*
256*4d6fc14bSjoerg    ------------------------------------------------- -----------------
257*4d6fc14bSjoerg    ``__cpp_lib_latch``                               ``201907L``
258*4d6fc14bSjoerg    ------------------------------------------------- -----------------
259*4d6fc14bSjoerg    ``__cpp_lib_list_remove_return_type``             ``201806L``
260*4d6fc14bSjoerg    ------------------------------------------------- -----------------
261*4d6fc14bSjoerg    ``__cpp_lib_math_constants``                      ``201907L``
262*4d6fc14bSjoerg    ------------------------------------------------- -----------------
263*4d6fc14bSjoerg    ``__cpp_lib_polymorphic_allocator``               *unimplemented*
264*4d6fc14bSjoerg    ------------------------------------------------- -----------------
265*4d6fc14bSjoerg    ``__cpp_lib_ranges``                              *unimplemented*
266*4d6fc14bSjoerg    ------------------------------------------------- -----------------
267*4d6fc14bSjoerg    ``__cpp_lib_remove_cvref``                        ``201711L``
268*4d6fc14bSjoerg    ------------------------------------------------- -----------------
269*4d6fc14bSjoerg    ``__cpp_lib_semaphore``                           ``201907L``
270*4d6fc14bSjoerg    ------------------------------------------------- -----------------
271*4d6fc14bSjoerg    ``__cpp_lib_shift``                               ``201806L``
272*4d6fc14bSjoerg    ------------------------------------------------- -----------------
273*4d6fc14bSjoerg    ``__cpp_lib_smart_ptr_for_overwrite``             *unimplemented*
274*4d6fc14bSjoerg    ------------------------------------------------- -----------------
275*4d6fc14bSjoerg    ``__cpp_lib_source_location``                     *unimplemented*
276*4d6fc14bSjoerg    ------------------------------------------------- -----------------
277*4d6fc14bSjoerg    ``__cpp_lib_span``                                ``202002L``
278*4d6fc14bSjoerg    ------------------------------------------------- -----------------
279*4d6fc14bSjoerg    ``__cpp_lib_ssize``                               ``201902L``
280*4d6fc14bSjoerg    ------------------------------------------------- -----------------
281*4d6fc14bSjoerg    ``__cpp_lib_starts_ends_with``                    ``201711L``
282*4d6fc14bSjoerg    ------------------------------------------------- -----------------
283*4d6fc14bSjoerg    ``__cpp_lib_string_view``                         ``201803L``
284*4d6fc14bSjoerg    ------------------------------------------------- -----------------
285*4d6fc14bSjoerg    ``__cpp_lib_syncbuf``                             *unimplemented*
286*4d6fc14bSjoerg    ------------------------------------------------- -----------------
287*4d6fc14bSjoerg    ``__cpp_lib_three_way_comparison``                *unimplemented*
288*4d6fc14bSjoerg    ------------------------------------------------- -----------------
289*4d6fc14bSjoerg    ``__cpp_lib_to_address``                          ``201711L``
290*4d6fc14bSjoerg    ------------------------------------------------- -----------------
291*4d6fc14bSjoerg    ``__cpp_lib_to_array``                            ``201907L``
292*4d6fc14bSjoerg    ------------------------------------------------- -----------------
293*4d6fc14bSjoerg    ``__cpp_lib_unwrap_ref``                          ``201811L``
294*4d6fc14bSjoerg    ------------------------------------------------- -----------------
295*4d6fc14bSjoerg    **C++ 2b**
296*4d6fc14bSjoerg    -------------------------------------------------------------------
297*4d6fc14bSjoerg    ``__cpp_lib_is_scoped_enum``                      ``202011L``
298*4d6fc14bSjoerg    ------------------------------------------------- -----------------
299*4d6fc14bSjoerg    ``__cpp_lib_stacktrace``                          *unimplemented*
300*4d6fc14bSjoerg    ------------------------------------------------- -----------------
301*4d6fc14bSjoerg    ``__cpp_lib_stdatomic_h``                         *unimplemented*
302*4d6fc14bSjoerg    ------------------------------------------------- -----------------
303*4d6fc14bSjoerg    ``__cpp_lib_string_contains``                     ``202011L``
304*4d6fc14bSjoerg    ------------------------------------------------- -----------------
305*4d6fc14bSjoerg    ``__cpp_lib_to_underlying``                       ``202102L``
306*4d6fc14bSjoerg    ================================================= =================
307*4d6fc14bSjoerg
308