[Dexter][NFC] Add Missing Commands to Commands.md Contents
[llvm-project.git] / libcxx / docs / FeatureTestMacroTable.rst
blob0f17a3a1bd5473ef8f8a618352941d857b3124c9
1 .. _FeatureTestMacroTable:
3 ==========================
4 Feature Test Macro Support
5 ==========================
7 .. contents::
8    :local:
10 Overview
11 ========
13 This file documents the feature test macros currently supported by libc++.
15 .. _feature-status:
17 Status
18 ======
20 .. table:: Current Status
21      :name: feature-status-table
22      :widths: auto
24     ================================================= =================
25     Macro Name                                        Value
26     ================================================= =================
27     **C++ 14**
28     -------------------------------------------------------------------
29     ``__cpp_lib_chrono_udls``                         ``201304L``
30     ------------------------------------------------- -----------------
31     ``__cpp_lib_complex_udls``                        ``201309L``
32     ------------------------------------------------- -----------------
33     ``__cpp_lib_exchange_function``                   ``201304L``
34     ------------------------------------------------- -----------------
35     ``__cpp_lib_generic_associative_lookup``          ``201304L``
36     ------------------------------------------------- -----------------
37     ``__cpp_lib_integer_sequence``                    ``201304L``
38     ------------------------------------------------- -----------------
39     ``__cpp_lib_integral_constant_callable``          ``201304L``
40     ------------------------------------------------- -----------------
41     ``__cpp_lib_is_final``                            ``201402L``
42     ------------------------------------------------- -----------------
43     ``__cpp_lib_is_null_pointer``                     ``201309L``
44     ------------------------------------------------- -----------------
45     ``__cpp_lib_make_reverse_iterator``               ``201402L``
46     ------------------------------------------------- -----------------
47     ``__cpp_lib_make_unique``                         ``201304L``
48     ------------------------------------------------- -----------------
49     ``__cpp_lib_null_iterators``                      ``201304L``
50     ------------------------------------------------- -----------------
51     ``__cpp_lib_quoted_string_io``                    ``201304L``
52     ------------------------------------------------- -----------------
53     ``__cpp_lib_result_of_sfinae``                    ``201210L``
54     ------------------------------------------------- -----------------
55     ``__cpp_lib_robust_nonmodifying_seq_ops``         ``201304L``
56     ------------------------------------------------- -----------------
57     ``__cpp_lib_shared_timed_mutex``                  ``201402L``
58     ------------------------------------------------- -----------------
59     ``__cpp_lib_string_udls``                         ``201304L``
60     ------------------------------------------------- -----------------
61     ``__cpp_lib_transformation_trait_aliases``        ``201304L``
62     ------------------------------------------------- -----------------
63     ``__cpp_lib_transparent_operators``               ``201210L``
64     ------------------------------------------------- -----------------
65     ``__cpp_lib_tuple_element_t``                     ``201402L``
66     ------------------------------------------------- -----------------
67     ``__cpp_lib_tuples_by_type``                      ``201304L``
68     ------------------------------------------------- -----------------
69     **C++ 17**
70     -------------------------------------------------------------------
71     ``__cpp_lib_addressof_constexpr``                 ``201603L``
72     ------------------------------------------------- -----------------
73     ``__cpp_lib_allocator_traits_is_always_equal``    ``201411L``
74     ------------------------------------------------- -----------------
75     ``__cpp_lib_any``                                 ``201606L``
76     ------------------------------------------------- -----------------
77     ``__cpp_lib_apply``                               ``201603L``
78     ------------------------------------------------- -----------------
79     ``__cpp_lib_array_constexpr``                     ``201603L``
80     ------------------------------------------------- -----------------
81     ``__cpp_lib_as_const``                            ``201510L``
82     ------------------------------------------------- -----------------
83     ``__cpp_lib_atomic_is_always_lock_free``          ``201603L``
84     ------------------------------------------------- -----------------
85     ``__cpp_lib_bool_constant``                       ``201505L``
86     ------------------------------------------------- -----------------
87     ``__cpp_lib_boyer_moore_searcher``                *unimplemented*
88     ------------------------------------------------- -----------------
89     ``__cpp_lib_byte``                                ``201603L``
90     ------------------------------------------------- -----------------
91     ``__cpp_lib_chrono``                              ``201611L``
92     ------------------------------------------------- -----------------
93     ``__cpp_lib_clamp``                               ``201603L``
94     ------------------------------------------------- -----------------
95     ``__cpp_lib_enable_shared_from_this``             ``201603L``
96     ------------------------------------------------- -----------------
97     ``__cpp_lib_execution``                           *unimplemented*
98     ------------------------------------------------- -----------------
99     ``__cpp_lib_filesystem``                          ``201703L``
100     ------------------------------------------------- -----------------
101     ``__cpp_lib_gcd_lcm``                             ``201606L``
102     ------------------------------------------------- -----------------
103     ``__cpp_lib_hardware_interference_size``          *unimplemented*
104     ------------------------------------------------- -----------------
105     ``__cpp_lib_has_unique_object_representations``   ``201606L``
106     ------------------------------------------------- -----------------
107     ``__cpp_lib_hypot``                               ``201603L``
108     ------------------------------------------------- -----------------
109     ``__cpp_lib_incomplete_container_elements``       ``201505L``
110     ------------------------------------------------- -----------------
111     ``__cpp_lib_invoke``                              ``201411L``
112     ------------------------------------------------- -----------------
113     ``__cpp_lib_is_aggregate``                        ``201703L``
114     ------------------------------------------------- -----------------
115     ``__cpp_lib_is_invocable``                        ``201703L``
116     ------------------------------------------------- -----------------
117     ``__cpp_lib_is_swappable``                        ``201603L``
118     ------------------------------------------------- -----------------
119     ``__cpp_lib_launder``                             ``201606L``
120     ------------------------------------------------- -----------------
121     ``__cpp_lib_logical_traits``                      ``201510L``
122     ------------------------------------------------- -----------------
123     ``__cpp_lib_make_from_tuple``                     ``201606L``
124     ------------------------------------------------- -----------------
125     ``__cpp_lib_map_try_emplace``                     ``201411L``
126     ------------------------------------------------- -----------------
127     ``__cpp_lib_math_special_functions``              *unimplemented*
128     ------------------------------------------------- -----------------
129     ``__cpp_lib_memory_resource``                     *unimplemented*
130     ------------------------------------------------- -----------------
131     ``__cpp_lib_node_extract``                        ``201606L``
132     ------------------------------------------------- -----------------
133     ``__cpp_lib_nonmember_container_access``          ``201411L``
134     ------------------------------------------------- -----------------
135     ``__cpp_lib_not_fn``                              ``201603L``
136     ------------------------------------------------- -----------------
137     ``__cpp_lib_optional``                            ``201606L``
138     ------------------------------------------------- -----------------
139     ``__cpp_lib_parallel_algorithm``                  *unimplemented*
140     ------------------------------------------------- -----------------
141     ``__cpp_lib_raw_memory_algorithms``               ``201606L``
142     ------------------------------------------------- -----------------
143     ``__cpp_lib_sample``                              ``201603L``
144     ------------------------------------------------- -----------------
145     ``__cpp_lib_scoped_lock``                         ``201703L``
146     ------------------------------------------------- -----------------
147     ``__cpp_lib_shared_mutex``                        ``201505L``
148     ------------------------------------------------- -----------------
149     ``__cpp_lib_shared_ptr_arrays``                   *unimplemented*
150     ------------------------------------------------- -----------------
151     ``__cpp_lib_shared_ptr_weak_type``                ``201606L``
152     ------------------------------------------------- -----------------
153     ``__cpp_lib_string_view``                         ``201606L``
154     ------------------------------------------------- -----------------
155     ``__cpp_lib_to_chars``                            *unimplemented*
156     ------------------------------------------------- -----------------
157     ``__cpp_lib_transparent_operators``               ``201510L``
158     ------------------------------------------------- -----------------
159     ``__cpp_lib_type_trait_variable_templates``       ``201510L``
160     ------------------------------------------------- -----------------
161     ``__cpp_lib_uncaught_exceptions``                 ``201411L``
162     ------------------------------------------------- -----------------
163     ``__cpp_lib_unordered_map_try_emplace``           ``201411L``
164     ------------------------------------------------- -----------------
165     ``__cpp_lib_variant``                             ``201606L``
166     ------------------------------------------------- -----------------
167     ``__cpp_lib_void_t``                              ``201411L``
168     ------------------------------------------------- -----------------
169     **C++ 2a**
170     -------------------------------------------------------------------
171     ``__cpp_lib_array_constexpr``                     ``201811L``
172     ------------------------------------------------- -----------------
173     ``__cpp_lib_atomic_flag_test``                    ``201907L``
174     ------------------------------------------------- -----------------
175     ``__cpp_lib_atomic_float``                        *unimplemented*
176     ------------------------------------------------- -----------------
177     ``__cpp_lib_atomic_lock_free_type_aliases``       ``201907L``
178     ------------------------------------------------- -----------------
179     ``__cpp_lib_atomic_ref``                          *unimplemented*
180     ------------------------------------------------- -----------------
181     ``__cpp_lib_atomic_shared_ptr``                   *unimplemented*
182     ------------------------------------------------- -----------------
183     ``__cpp_lib_atomic_value_initialization``         *unimplemented*
184     ------------------------------------------------- -----------------
185     ``__cpp_lib_atomic_wait``                         ``201907L``
186     ------------------------------------------------- -----------------
187     ``__cpp_lib_bind_front``                          *unimplemented*
188     ------------------------------------------------- -----------------
189     ``__cpp_lib_bit_cast``                            *unimplemented*
190     ------------------------------------------------- -----------------
191     ``__cpp_lib_char8_t``                             ``201811L``
192     ------------------------------------------------- -----------------
193     ``__cpp_lib_concepts``                            *unimplemented*
194     ------------------------------------------------- -----------------
195     ``__cpp_lib_constexpr_dynamic_alloc``             ``201907L``
196     ------------------------------------------------- -----------------
197     ``__cpp_lib_constexpr_misc``                      *unimplemented*
198     ------------------------------------------------- -----------------
199     ``__cpp_lib_constexpr_swap_algorithms``           *unimplemented*
200     ------------------------------------------------- -----------------
201     ``__cpp_lib_constexpr_utility``                   ``201811L``
202     ------------------------------------------------- -----------------
203     ``__cpp_lib_destroying_delete``                   ``201806L``
204     ------------------------------------------------- -----------------
205     ``__cpp_lib_endian``                              ``201907L``
206     ------------------------------------------------- -----------------
207     ``__cpp_lib_erase_if``                            ``202002L``
208     ------------------------------------------------- -----------------
209     ``__cpp_lib_generic_unordered_lookup``            *unimplemented*
210     ------------------------------------------------- -----------------
211     ``__cpp_lib_interpolate``                         ``201902L``
212     ------------------------------------------------- -----------------
213     ``__cpp_lib_is_constant_evaluated``               ``201811L``
214     ------------------------------------------------- -----------------
215     ``__cpp_lib_list_remove_return_type``             ``201806L``
216     ------------------------------------------------- -----------------
217     ``__cpp_lib_math_constants``                      ``201907L``
218     ------------------------------------------------- -----------------
219     ``__cpp_lib_ranges``                              *unimplemented*
220     ------------------------------------------------- -----------------
221     ``__cpp_lib_span``                                ``202002L``
222     ------------------------------------------------- -----------------
223     ``__cpp_lib_three_way_comparison``                *unimplemented*
224     ------------------------------------------------- -----------------
225     ``__cpp_lib_to_array``                            ``201907L``
226     ================================================= =================