Difference between revisions of "cpp/utility/feature test"
From cppreference.com
m (updated (source: eel)) |
m (rm non-significant spaces after auto-generation of this wiki-page from the eel's html-source.) |
||
Line 10: | Line 10: | ||
! Header | ! Header | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_addressof_constexpr}} |
| 201603L | | 201603L | ||
| {{header|memory}} | | {{header|memory}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_allocate_at_least}} |
| 202106L | | 202106L | ||
| {{header|memory}} | | {{header|memory}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_allocator_traits_is_always_equal}} |
| 201411L | | 201411L | ||
| {{header|memory}} {{header|scoped_allocator}} {{header|string}} {{header|deque}} {{header|forward_list}} {{header|list}} {{header|vector}} {{header|map}} {{header|set}} {{header|unordered_map}} {{header|unordered_set}} | | {{header|memory}} {{header|scoped_allocator}} {{header|string}} {{header|deque}} {{header|forward_list}} {{header|list}} {{header|vector}} {{header|map}} {{header|set}} {{header|unordered_map}} {{header|unordered_set}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_adaptor_iterator_pair_constructor}} |
| 202106L | | 202106L | ||
| {{header|stack}} {{header|queue}} | | {{header|stack}} {{header|queue}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_any}} |
| 201606L | | 201606L | ||
| {{header|any}} | | {{header|any}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_apply}} |
| 201603L | | 201603L | ||
| {{header|tuple}} | | {{header|tuple}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_array_constexpr}} |
| 201811L | | 201811L | ||
| {{header|iterator}} {{header|array}} | | {{header|iterator}} {{header|array}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_as_const}} |
| 201510L | | 201510L | ||
| {{header|utility}} | | {{header|utility}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_associative_heterogeneous_erasure}} |
| 202110L | | 202110L | ||
| {{header|map}} {{header|set}} {{header|unordered_map}} {{header|unordered_set}} | | {{header|map}} {{header|set}} {{header|unordered_map}} {{header|unordered_set}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_assume_aligned}} |
| 201811L | | 201811L | ||
| {{header|memory}} | | {{header|memory}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_atomic_flag_test}} |
| 201907L | | 201907L | ||
| {{header|atomic}} | | {{header|atomic}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_atomic_float}} |
| 201711L | | 201711L | ||
| {{header|atomic}} | | {{header|atomic}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_atomic_is_always_lock_free}} |
| 201603L | | 201603L | ||
| {{header|atomic}} | | {{header|atomic}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_atomic_lock_free_type_aliases}} |
| 201907L | | 201907L | ||
| {{header|atomic}} | | {{header|atomic}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_atomic_ref}} |
| 201806L | | 201806L | ||
| {{header|atomic}} | | {{header|atomic}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_atomic_shared_ptr}} |
| 201711L | | 201711L | ||
| {{header|memory}} | | {{header|memory}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_atomic_value_initialization}} |
| 201911L | | 201911L | ||
| {{header|atomic}} {{header|memory}} | | {{header|atomic}} {{header|memory}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_atomic_wait}} |
| 201907L | | 201907L | ||
| {{header|atomic}} | | {{header|atomic}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_barrier}} |
| 201907L | | 201907L | ||
| {{header|barrier}} | | {{header|barrier}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_bind_front}} |
| 201907L | | 201907L | ||
| {{header|functional}} | | {{header|functional}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_bit_cast}} |
| 201806L | | 201806L | ||
| {{header|bit}} | | {{header|bit}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_bitops}} |
| 201907L | | 201907L | ||
| {{header|bit}} | | {{header|bit}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_bool_constant}} |
| 201505L | | 201505L | ||
| {{header|type_traits}} | | {{header|type_traits}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_bounded_array_traits}} |
| 201902L | | 201902L | ||
| {{header|type_traits}} | | {{header|type_traits}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_boyer_moore_searcher}} |
| 201603L | | 201603L | ||
| {{header|functional}} | | {{header|functional}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_byte}} |
| 201603L | | 201603L | ||
| {{header|cstddef}} | | {{header|cstddef}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_byteswap}} |
| 202110L | | 202110L | ||
| {{header|bit}} | | {{header|bit}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_char8_t}} |
| 201907L | | 201907L | ||
| {{header|atomic}} {{header|filesystem}} {{header|istream}} {{header|limits}} {{header|locale}} {{header|ostream}} {{header|string}} {{header|string_view}} | | {{header|atomic}} {{header|filesystem}} {{header|istream}} {{header|limits}} {{header|locale}} {{header|ostream}} {{header|string}} {{header|string_view}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_chrono}} |
| 201907L | | 201907L | ||
| {{header|chrono}} | | {{header|chrono}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_chrono_udls}} |
| 201304L | | 201304L | ||
| {{header|chrono}} | | {{header|chrono}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_clamp}} |
| 201603L | | 201603L | ||
| {{header|algorithm}} | | {{header|algorithm}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_complex_udls}} |
| 201309L | | 201309L | ||
| {{header|complex}} | | {{header|complex}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_concepts}} |
| 202002L | | 202002L | ||
| {{header|concepts}} | | {{header|concepts}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_constexpr_algorithms}} |
| 201806L | | 201806L | ||
| {{header|algorithm}} | | {{header|algorithm}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_constexpr_complex}} |
| 201711L | | 201711L | ||
| {{header|complex}} | | {{header|complex}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_constexpr_dynamic_alloc}} |
| 201907L | | 201907L | ||
| {{header|memory}} | | {{header|memory}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_constexpr_functional}} |
| 201907L | | 201907L | ||
| {{header|functional}} | | {{header|functional}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_constexpr_iterator}} |
| 201811L | | 201811L | ||
| {{header|iterator}} | | {{header|iterator}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_constexpr_memory}} |
| 201811L | | 201811L | ||
| {{header|memory}} | | {{header|memory}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_constexpr_numeric}} |
| 201911L | | 201911L | ||
| {{header|numeric}} | | {{header|numeric}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_constexpr_string}} |
| 201907L | | 201907L | ||
| {{header|string}} | | {{header|string}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_constexpr_string_view}} |
| 201811L | | 201811L | ||
| {{header|string_view}} | | {{header|string_view}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_constexpr_tuple}} |
| 201811L | | 201811L | ||
| {{header|tuple}} | | {{header|tuple}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_constexpr_typeinfo}} |
| 202106L | | 202106L | ||
| {{header|typeinfo}} | | {{header|typeinfo}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_constexpr_utility}} |
| 201811L | | 201811L | ||
| {{header|utility}} | | {{header|utility}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_constexpr_vector}} |
| 201907L | | 201907L | ||
| {{header|vector}} | | {{header|vector}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_coroutine}} |
| 201902L | | 201902L | ||
| {{header|coroutine}} | | {{header|coroutine}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_destroying_delete}} |
| 201806L | | 201806L | ||
| {{header|new}} | | {{header|new}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_enable_shared_from_this}} |
| 201603L | | 201603L | ||
| {{header|memory}} | | {{header|memory}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_endian}} |
| 201907L | | 201907L | ||
| {{header|bit}} | | {{header|bit}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_erase_if}} |
| 202002L | | 202002L | ||
| {{header|string}} {{header|deque}} {{header|forward_list}} {{header|list}} {{header|vector}} {{header|map}} {{header|set}} {{header|unordered_map}} {{header|unordered_set}} | | {{header|string}} {{header|deque}} {{header|forward_list}} {{header|list}} {{header|vector}} {{header|map}} {{header|set}} {{header|unordered_map}} {{header|unordered_set}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_exchange_function}} |
| 201304L | | 201304L | ||
| {{header|utility}} | | {{header|utility}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_execution}} |
| 201902L | | 201902L | ||
| {{header|execution}} | | {{header|execution}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_filesystem}} |
| 201703L | | 201703L | ||
| {{header|filesystem}} | | {{header|filesystem}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_format}} |
| 202110L | | 202110L | ||
| {{header|format}} | | {{header|format}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_gcd_lcm}} |
| 201606L | | 201606L | ||
| {{header|numeric}} | | {{header|numeric}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_generic_associative_lookup}} |
| 201304L | | 201304L | ||
| {{header|map}} {{header|set}} | | {{header|map}} {{header|set}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_generic_unordered_lookup}} |
| 201811L | | 201811L | ||
| {{header|unordered_map}} {{header|unordered_set}} | | {{header|unordered_map}} {{header|unordered_set}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_hardware_interference_size}} |
| 201703L | | 201703L | ||
| {{header|new}} | | {{header|new}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_has_unique_object_representations}} |
| 201606L | | 201606L | ||
| {{header|type_traits}} | | {{header|type_traits}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_hypot}} |
| 201603L | | 201603L | ||
| {{header|cmath}} | | {{header|cmath}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_incomplete_container_elements}} |
| 201505L | | 201505L | ||
| {{header|forward_list}} {{header|list}} {{header|vector}} | | {{header|forward_list}} {{header|list}} {{header|vector}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_int_pow2}} |
| 202002L | | 202002L | ||
| {{header|bit}} | | {{header|bit}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_integer_comparison_functions}} |
| 202002L | | 202002L | ||
| {{header|utility}} | | {{header|utility}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_integer_sequence}} |
| 201304L | | 201304L | ||
| {{header|utility}} | | {{header|utility}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_integral_constant_callable}} |
| 201304L | | 201304L | ||
| {{header|type_traits}} | | {{header|type_traits}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_interpolate}} |
| 201902L | | 201902L | ||
| {{header|cmath}} {{header|numeric}} | | {{header|cmath}} {{header|numeric}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_invoke}} |
| 201411L | | 201411L | ||
| {{header|functional}} | | {{header|functional}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_invoke_r}} |
| 202106L | | 202106L | ||
| {{header|functional}} | | {{header|functional}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_is_aggregate}} |
| 201703L | | 201703L | ||
| {{header|type_traits}} | | {{header|type_traits}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_is_constant_evaluated}} |
| 201811L | | 201811L | ||
| {{header|type_traits}} | | {{header|type_traits}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_is_final}} |
| 201402L | | 201402L | ||
| {{header|type_traits}} | | {{header|type_traits}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_is_invocable}} |
| 201703L | | 201703L | ||
| {{header|type_traits}} | | {{header|type_traits}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_is_layout_compatible}} |
| 201907L | | 201907L | ||
| {{header|type_traits}} | | {{header|type_traits}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_is_nothrow_convertible}} |
| 201806L | | 201806L | ||
| {{header|type_traits}} | | {{header|type_traits}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_is_null_pointer}} |
| 201309L | | 201309L | ||
| {{header|type_traits}} | | {{header|type_traits}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_is_pointer_interconvertible}} |
| 201907L | | 201907L | ||
| {{header|type_traits}} | | {{header|type_traits}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_is_scoped_enum}} |
| 202011L | | 202011L | ||
| {{header|type_traits}} | | {{header|type_traits}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_is_swappable}} |
| 201603L | | 201603L | ||
| {{header|type_traits}} | | {{header|type_traits}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_jthread}} |
| 201911L | | 201911L | ||
| {{header|stop_token}} {{header|thread}} | | {{header|stop_token}} {{header|thread}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_latch}} |
| 201907L | | 201907L | ||
| {{header|latch}} | | {{header|latch}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_launder}} |
| 201606L | | 201606L | ||
| {{header|new}} | | {{header|new}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_list_remove_return_type}} |
| 201806L | | 201806L | ||
| {{header|forward_list}} {{header|list}} | | {{header|forward_list}} {{header|list}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_logical_traits}} |
| 201510L | | 201510L | ||
| {{header|type_traits}} | | {{header|type_traits}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_make_from_tuple}} |
| 201606L | | 201606L | ||
| {{header|tuple}} | | {{header|tuple}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_make_reverse_iterator}} |
| 201402L | | 201402L | ||
| {{header|iterator}} | | {{header|iterator}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_make_unique}} |
| 201304L | | 201304L | ||
| {{header|memory}} | | {{header|memory}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_map_try_emplace}} |
| 201411L | | 201411L | ||
| {{header|map}} | | {{header|map}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_math_constants}} |
| 201907L | | 201907L | ||
| {{header|numbers}} | | {{header|numbers}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_math_special_functions}} |
| 201603L | | 201603L | ||
| {{header|cmath}} | | {{header|cmath}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_memory_resource}} |
| 201603L | | 201603L | ||
| {{header|memory_resource}} | | {{header|memory_resource}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_monadic_optional}} |
| 202110L | | 202110L | ||
| {{header|optional}} | | {{header|optional}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_move_only_function}} |
| 202110L | | 202110L | ||
| {{header|functional}} | | {{header|functional}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_node_extract}} |
| 201606L | | 201606L | ||
| {{header|map}} {{header|set}} {{header|unordered_map}} {{header|unordered_set}} | | {{header|map}} {{header|set}} {{header|unordered_map}} {{header|unordered_set}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_nonmember_container_access}} |
| 201411L | | 201411L | ||
| {{header|array}} {{header|deque}} {{header|forward_list}} {{header|iterator}} {{header|list}} {{header|map}} {{header|regex}} {{header|set}} {{header|string}} {{header|unordered_map}} {{header|unordered_set}} {{header|vector}} | | {{header|array}} {{header|deque}} {{header|forward_list}} {{header|iterator}} {{header|list}} {{header|map}} {{header|regex}} {{header|set}} {{header|string}} {{header|unordered_map}} {{header|unordered_set}} {{header|vector}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_not_fn}} |
| 201603L | | 201603L | ||
| {{header|functional}} | | {{header|functional}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_null_iterators}} |
| 201304L | | 201304L | ||
| {{header|iterator}} | | {{header|iterator}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_optional}} |
| 202106L | | 202106L | ||
| {{header|optional}} | | {{header|optional}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_out_ptr}} |
| 202106L | | 202106L | ||
| {{header|memory}} | | {{header|memory}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_parallel_algorithm}} |
| 201603L | | 201603L | ||
| {{header|algorithm}} {{header|numeric}} | | {{header|algorithm}} {{header|numeric}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_polymorphic_allocator}} |
| 201902L | | 201902L | ||
| {{header|memory_resource}} | | {{header|memory_resource}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_quoted_string_io}} |
| 201304L | | 201304L | ||
| {{header|iomanip}} | | {{header|iomanip}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_ranges}} |
| 202110L | | 202110L | ||
| {{header|algorithm}} {{header|functional}} {{header|iterator}} {{header|memory}} {{header|ranges}} | | {{header|algorithm}} {{header|functional}} {{header|iterator}} {{header|memory}} {{header|ranges}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_ranges_starts_ends_with}} |
| 202106L | | 202106L | ||
| {{header|algorithm}} | | {{header|algorithm}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_ranges_zip}} |
| 202110L | | 202110L | ||
| {{header|ranges}} {{header|tuple}} {{header|utility}} | | {{header|ranges}} {{header|tuple}} {{header|utility}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_raw_memory_algorithms}} |
| 201606L | | 201606L | ||
| {{header|memory}} | | {{header|memory}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_remove_cvref}} |
| 201711L | | 201711L | ||
| {{header|type_traits}} | | {{header|type_traits}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_result_of_sfinae}} |
| 201210L | | 201210L | ||
| {{header|functional}} {{header|type_traits}} | | {{header|functional}} {{header|type_traits}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_robust_nonmodifying_seq_ops}} |
| 201304L | | 201304L | ||
| {{header|algorithm}} | | {{header|algorithm}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_sample}} |
| 201603L | | 201603L | ||
| {{header|algorithm}} | | {{header|algorithm}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_scoped_lock}} |
| 201703L | | 201703L | ||
| {{header|mutex}} | | {{header|mutex}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_semaphore}} |
| 201907L | | 201907L | ||
| {{header|semaphore}} | | {{header|semaphore}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_shared_mutex}} |
| 201505L | | 201505L | ||
| {{header|shared_mutex}} | | {{header|shared_mutex}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_shared_ptr_arrays}} |
| 201707L | | 201707L | ||
| {{header|memory}} | | {{header|memory}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_shared_ptr_weak_type}} |
| 201606L | | 201606L | ||
| {{header|memory}} | | {{header|memory}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_shared_timed_mutex}} |
| 201402L | | 201402L | ||
| {{header|shared_mutex}} | | {{header|shared_mutex}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_shift}} |
| 201806L | | 201806L | ||
| {{header|algorithm}} | | {{header|algorithm}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_smart_ptr_for_overwrite}} |
| 202002L | | 202002L | ||
| {{header|memory}} | | {{header|memory}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_source_location}} |
| 201907L | | 201907L | ||
| {{header|source_location}} | | {{header|source_location}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_span}} |
| 202002L | | 202002L | ||
| {{header|span}} | | {{header|span}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_spanstream}} |
| 202106L | | 202106L | ||
| {{header|spanstream}} | | {{header|spanstream}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_ssize}} |
| 201902L | | 201902L | ||
| {{header|iterator}} | | {{header|iterator}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_stacktrace}} |
| 202011L | | 202011L | ||
| {{header|stacktrace}} | | {{header|stacktrace}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_starts_ends_with}} |
| 201711L | | 201711L | ||
| {{header|string}} {{header|string_view}} | | {{header|string}} {{header|string_view}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_stdatomic_h}} |
| 202011L | | 202011L | ||
| {{header|stdatomic.h}} | | {{header|stdatomic.h}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_string_contains}} |
| 202011L | | 202011L | ||
| {{header|string}} {{header|string_view}} | | {{header|string}} {{header|string_view}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_string_resize_and_overwrite}} |
| 202110L | | 202110L | ||
| {{header|string}} | | {{header|string}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_string_udls}} |
| 201304L | | 201304L | ||
| {{header|string}} | | {{header|string}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_string_view}} |
| 201803L | | 201803L | ||
| {{header|string}} {{header|string_view}} | | {{header|string}} {{header|string_view}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_syncbuf}} |
| 201803L | | 201803L | ||
| {{header|syncstream}} | | {{header|syncstream}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_three_way_comparison}} |
| 201907L | | 201907L | ||
| {{header|compare}} | | {{header|compare}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_to_address}} |
| 201711L | | 201711L | ||
| {{header|memory}} | | {{header|memory}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_to_array}} |
| 201907L | | 201907L | ||
| {{header|array}} | | {{header|array}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_to_chars}} |
| 201611L | | 201611L | ||
| {{header|charconv}} | | {{header|charconv}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_to_underlying}} |
| 202102L | | 202102L | ||
| {{header|utility}} | | {{header|utility}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_transformation_trait_aliases}} |
| 201304L | | 201304L | ||
| {{header|type_traits}} | | {{header|type_traits}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_transparent_operators}} |
| 201510L | | 201510L | ||
| {{header|memory}} {{header|functional}} | | {{header|memory}} {{header|functional}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_tuple_element_t}} |
| 201402L | | 201402L | ||
| {{header|tuple}} | | {{header|tuple}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_tuples_by_type}} |
| 201304L | | 201304L | ||
| {{header|utility}} {{header|tuple}} | | {{header|utility}} {{header|tuple}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_type_identity}} |
| 201806L | | 201806L | ||
| {{header|type_traits}} | | {{header|type_traits}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_type_trait_variable_templates}} |
| 201510L | | 201510L | ||
| {{header|type_traits}} | | {{header|type_traits}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_uncaught_exceptions}} |
| 201411L | | 201411L | ||
| {{header|exception}} | | {{header|exception}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_unordered_map_try_emplace}} |
| 201411L | | 201411L | ||
| {{header|unordered_map}} | | {{header|unordered_map}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_unwrap_ref}} |
| 201811L | | 201811L | ||
| {{header|type_traits}} | | {{header|type_traits}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_variant}} |
| 202106L | | 202106L | ||
| {{header|variant}} | | {{header|variant}} | ||
|- | |- | ||
− | | | + | | {{tt|__cpp_lib_void_t}} |
| 201411L | | 201411L | ||
| {{header|type_traits}} | | {{header|type_traits}} | ||
|} | |} | ||
− | |||
<!-- Entries count: 146 --> | <!-- Entries count: 146 --> | ||
Revision as of 07:59, 24 December 2021
Each of following macros is defined if the header <version> or one of the corresponding headers specified in the table is included.
Macro name | Value | Header |
---|---|---|
__cpp_lib_addressof_constexpr
|
201603L | <memory> |
__cpp_lib_allocate_at_least
|
202106L | <memory> |
__cpp_lib_allocator_traits_is_always_equal
|
201411L | <memory> <scoped_allocator> <string> <deque> <forward_list> <list> <vector> <map> <set> <unordered_map> <unordered_set> |
__cpp_lib_adaptor_iterator_pair_constructor
|
202106L | <stack> <queue> |
__cpp_lib_any
|
201606L | <any> |
__cpp_lib_apply
|
201603L | <tuple> |
__cpp_lib_array_constexpr
|
201811L | <iterator> <array> |
__cpp_lib_as_const
|
201510L | <utility> |
__cpp_lib_associative_heterogeneous_erasure
|
202110L | <map> <set> <unordered_map> <unordered_set> |
__cpp_lib_assume_aligned
|
201811L | <memory> |
__cpp_lib_atomic_flag_test
|
201907L | <atomic> |
__cpp_lib_atomic_float
|
201711L | <atomic> |
__cpp_lib_atomic_is_always_lock_free
|
201603L | <atomic> |
__cpp_lib_atomic_lock_free_type_aliases
|
201907L | <atomic> |
__cpp_lib_atomic_ref
|
201806L | <atomic> |
__cpp_lib_atomic_shared_ptr
|
201711L | <memory> |
__cpp_lib_atomic_value_initialization
|
201911L | <atomic> <memory> |
__cpp_lib_atomic_wait
|
201907L | <atomic> |
__cpp_lib_barrier
|
201907L | <barrier> |
__cpp_lib_bind_front
|
201907L | <functional> |
__cpp_lib_bit_cast
|
201806L | <bit> |
__cpp_lib_bitops
|
201907L | <bit> |
__cpp_lib_bool_constant
|
201505L | <type_traits> |
__cpp_lib_bounded_array_traits
|
201902L | <type_traits> |
__cpp_lib_boyer_moore_searcher
|
201603L | <functional> |
__cpp_lib_byte
|
201603L | <cstddef> |
__cpp_lib_byteswap
|
202110L | <bit> |
__cpp_lib_char8_t
|
201907L | <atomic> <filesystem> <istream> <limits> <locale> <ostream> <string> <string_view> |
__cpp_lib_chrono
|
201907L | <chrono> |
__cpp_lib_chrono_udls
|
201304L | <chrono> |
__cpp_lib_clamp
|
201603L | <algorithm> |
__cpp_lib_complex_udls
|
201309L | <complex> |
__cpp_lib_concepts
|
202002L | <concepts> |
__cpp_lib_constexpr_algorithms
|
201806L | <algorithm> |
__cpp_lib_constexpr_complex
|
201711L | <complex> |
__cpp_lib_constexpr_dynamic_alloc
|
201907L | <memory> |
__cpp_lib_constexpr_functional
|
201907L | <functional> |
__cpp_lib_constexpr_iterator
|
201811L | <iterator> |
__cpp_lib_constexpr_memory
|
201811L | <memory> |
__cpp_lib_constexpr_numeric
|
201911L | <numeric> |
__cpp_lib_constexpr_string
|
201907L | <string> |
__cpp_lib_constexpr_string_view
|
201811L | <string_view> |
__cpp_lib_constexpr_tuple
|
201811L | <tuple> |
__cpp_lib_constexpr_typeinfo
|
202106L | <typeinfo> |
__cpp_lib_constexpr_utility
|
201811L | <utility> |
__cpp_lib_constexpr_vector
|
201907L | <vector> |
__cpp_lib_coroutine
|
201902L | <coroutine> |
__cpp_lib_destroying_delete
|
201806L | <new> |
__cpp_lib_enable_shared_from_this
|
201603L | <memory> |
__cpp_lib_endian
|
201907L | <bit> |
__cpp_lib_erase_if
|
202002L | <string> <deque> <forward_list> <list> <vector> <map> <set> <unordered_map> <unordered_set> |
__cpp_lib_exchange_function
|
201304L | <utility> |
__cpp_lib_execution
|
201902L | <execution> |
__cpp_lib_filesystem
|
201703L | <filesystem> |
__cpp_lib_format
|
202110L | <format> |
__cpp_lib_gcd_lcm
|
201606L | <numeric> |
__cpp_lib_generic_associative_lookup
|
201304L | <map> <set> |
__cpp_lib_generic_unordered_lookup
|
201811L | <unordered_map> <unordered_set> |
__cpp_lib_hardware_interference_size
|
201703L | <new> |
__cpp_lib_has_unique_object_representations
|
201606L | <type_traits> |
__cpp_lib_hypot
|
201603L | <cmath> |
__cpp_lib_incomplete_container_elements
|
201505L | <forward_list> <list> <vector> |
__cpp_lib_int_pow2
|
202002L | <bit> |
__cpp_lib_integer_comparison_functions
|
202002L | <utility> |
__cpp_lib_integer_sequence
|
201304L | <utility> |
__cpp_lib_integral_constant_callable
|
201304L | <type_traits> |
__cpp_lib_interpolate
|
201902L | <cmath> <numeric> |
__cpp_lib_invoke
|
201411L | <functional> |
__cpp_lib_invoke_r
|
202106L | <functional> |
__cpp_lib_is_aggregate
|
201703L | <type_traits> |
__cpp_lib_is_constant_evaluated
|
201811L | <type_traits> |
__cpp_lib_is_final
|
201402L | <type_traits> |
__cpp_lib_is_invocable
|
201703L | <type_traits> |
__cpp_lib_is_layout_compatible
|
201907L | <type_traits> |
__cpp_lib_is_nothrow_convertible
|
201806L | <type_traits> |
__cpp_lib_is_null_pointer
|
201309L | <type_traits> |
__cpp_lib_is_pointer_interconvertible
|
201907L | <type_traits> |
__cpp_lib_is_scoped_enum
|
202011L | <type_traits> |
__cpp_lib_is_swappable
|
201603L | <type_traits> |
__cpp_lib_jthread
|
201911L | <stop_token> <thread> |
__cpp_lib_latch
|
201907L | <latch> |
__cpp_lib_launder
|
201606L | <new> |
__cpp_lib_list_remove_return_type
|
201806L | <forward_list> <list> |
__cpp_lib_logical_traits
|
201510L | <type_traits> |
__cpp_lib_make_from_tuple
|
201606L | <tuple> |
__cpp_lib_make_reverse_iterator
|
201402L | <iterator> |
__cpp_lib_make_unique
|
201304L | <memory> |
__cpp_lib_map_try_emplace
|
201411L | <map> |
__cpp_lib_math_constants
|
201907L | <numbers> |
__cpp_lib_math_special_functions
|
201603L | <cmath> |
__cpp_lib_memory_resource
|
201603L | <memory_resource> |
__cpp_lib_monadic_optional
|
202110L | <optional> |
__cpp_lib_move_only_function
|
202110L | <functional> |
__cpp_lib_node_extract
|
201606L | <map> <set> <unordered_map> <unordered_set> |
__cpp_lib_nonmember_container_access
|
201411L | <array> <deque> <forward_list> <iterator> <list> <map> <regex> <set> <string> <unordered_map> <unordered_set> <vector> |
__cpp_lib_not_fn
|
201603L | <functional> |
__cpp_lib_null_iterators
|
201304L | <iterator> |
__cpp_lib_optional
|
202106L | <optional> |
__cpp_lib_out_ptr
|
202106L | <memory> |
__cpp_lib_parallel_algorithm
|
201603L | <algorithm> <numeric> |
__cpp_lib_polymorphic_allocator
|
201902L | <memory_resource> |
__cpp_lib_quoted_string_io
|
201304L | <iomanip> |
__cpp_lib_ranges
|
202110L | <algorithm> <functional> <iterator> <memory> <ranges> |
__cpp_lib_ranges_starts_ends_with
|
202106L | <algorithm> |
__cpp_lib_ranges_zip
|
202110L | <ranges> <tuple> <utility> |
__cpp_lib_raw_memory_algorithms
|
201606L | <memory> |
__cpp_lib_remove_cvref
|
201711L | <type_traits> |
__cpp_lib_result_of_sfinae
|
201210L | <functional> <type_traits> |
__cpp_lib_robust_nonmodifying_seq_ops
|
201304L | <algorithm> |
__cpp_lib_sample
|
201603L | <algorithm> |
__cpp_lib_scoped_lock
|
201703L | <mutex> |
__cpp_lib_semaphore
|
201907L | <semaphore> |
__cpp_lib_shared_mutex
|
201505L | <shared_mutex> |
__cpp_lib_shared_ptr_arrays
|
201707L | <memory> |
__cpp_lib_shared_ptr_weak_type
|
201606L | <memory> |
__cpp_lib_shared_timed_mutex
|
201402L | <shared_mutex> |
__cpp_lib_shift
|
201806L | <algorithm> |
__cpp_lib_smart_ptr_for_overwrite
|
202002L | <memory> |
__cpp_lib_source_location
|
201907L | <source_location> |
__cpp_lib_span
|
202002L | <span> |
__cpp_lib_spanstream
|
202106L | <spanstream> |
__cpp_lib_ssize
|
201902L | <iterator> |
__cpp_lib_stacktrace
|
202011L | <stacktrace> |
__cpp_lib_starts_ends_with
|
201711L | <string> <string_view> |
__cpp_lib_stdatomic_h
|
202011L | <stdatomic.h> |
__cpp_lib_string_contains
|
202011L | <string> <string_view> |
__cpp_lib_string_resize_and_overwrite
|
202110L | <string> |
__cpp_lib_string_udls
|
201304L | <string> |
__cpp_lib_string_view
|
201803L | <string> <string_view> |
__cpp_lib_syncbuf
|
201803L | <syncstream> |
__cpp_lib_three_way_comparison
|
201907L | <compare> |
__cpp_lib_to_address
|
201711L | <memory> |
__cpp_lib_to_array
|
201907L | <array> |
__cpp_lib_to_chars
|
201611L | <charconv> |
__cpp_lib_to_underlying
|
202102L | <utility> |
__cpp_lib_transformation_trait_aliases
|
201304L | <type_traits> |
__cpp_lib_transparent_operators
|
201510L | <memory> <functional> |
__cpp_lib_tuple_element_t
|
201402L | <tuple> |
__cpp_lib_tuples_by_type
|
201304L | <utility> <tuple> |
__cpp_lib_type_identity
|
201806L | <type_traits> |
__cpp_lib_type_trait_variable_templates
|
201510L | <type_traits> |
__cpp_lib_uncaught_exceptions
|
201411L | <exception> |
__cpp_lib_unordered_map_try_emplace
|
201411L | <unordered_map> |
__cpp_lib_unwrap_ref
|
201811L | <type_traits> |
__cpp_lib_variant
|
202106L | <variant> |
__cpp_lib_void_t
|
201411L | <type_traits> |
See also
Feature testing (C++20) | A set of preprocessor macros to test the corresponding to C++ language and library features |