This file documents the feature test macros currently supported by libc++.
Macro Name | Value |
---|---|
C++ 14 | |
__cpp_lib_chrono_udls |
201304L |
__cpp_lib_complex_udls |
201309L |
__cpp_lib_exchange_function |
201304L |
__cpp_lib_generic_associative_lookup |
201304L |
__cpp_lib_integer_sequence |
201304L |
__cpp_lib_integral_constant_callable |
201304L |
__cpp_lib_is_final |
201402L |
__cpp_lib_is_null_pointer |
201309L |
__cpp_lib_make_reverse_iterator |
201402L |
__cpp_lib_make_unique |
201304L |
__cpp_lib_null_iterators |
201304L |
__cpp_lib_quoted_string_io |
201304L |
__cpp_lib_result_of_sfinae |
201210L |
__cpp_lib_robust_nonmodifying_seq_ops |
201304L |
__cpp_lib_shared_timed_mutex |
201402L |
__cpp_lib_string_udls |
201304L |
__cpp_lib_transformation_trait_aliases |
201304L |
__cpp_lib_transparent_operators |
201210L |
__cpp_lib_tuple_element_t |
201402L |
__cpp_lib_tuples_by_type |
201304L |
C++ 17 | |
__cpp_lib_addressof_constexpr |
201603L |
__cpp_lib_allocator_traits_is_always_equal |
201411L |
__cpp_lib_any |
201606L |
__cpp_lib_apply |
201603L |
__cpp_lib_array_constexpr |
201603L |
__cpp_lib_as_const |
201510L |
__cpp_lib_atomic_is_always_lock_free |
201603L |
__cpp_lib_bool_constant |
201505L |
__cpp_lib_boyer_moore_searcher |
201603L |
__cpp_lib_byte |
201603L |
__cpp_lib_chrono |
201611L |
__cpp_lib_clamp |
201603L |
__cpp_lib_enable_shared_from_this |
201603L |
__cpp_lib_execution |
unimplemented |
__cpp_lib_filesystem |
201703L |
__cpp_lib_gcd_lcm |
201606L |
__cpp_lib_hardware_interference_size |
201703L |
__cpp_lib_has_unique_object_representations |
201606L |
__cpp_lib_hypot |
201603L |
__cpp_lib_incomplete_container_elements |
201505L |
__cpp_lib_invoke |
201411L |
__cpp_lib_is_aggregate |
201703L |
__cpp_lib_is_invocable |
201703L |
__cpp_lib_is_swappable |
201603L |
__cpp_lib_launder |
201606L |
__cpp_lib_logical_traits |
201510L |
__cpp_lib_make_from_tuple |
201606L |
__cpp_lib_map_try_emplace |
201411L |
__cpp_lib_math_special_functions |
unimplemented |
__cpp_lib_memory_resource |
201603L |
__cpp_lib_node_extract |
201606L |
__cpp_lib_nonmember_container_access |
201411L |
__cpp_lib_not_fn |
201603L |
__cpp_lib_optional |
201606L |
__cpp_lib_parallel_algorithm |
unimplemented |
__cpp_lib_raw_memory_algorithms |
201606L |
__cpp_lib_sample |
201603L |
__cpp_lib_scoped_lock |
201703L |
__cpp_lib_shared_mutex |
201505L |
__cpp_lib_shared_ptr_arrays |
201611L |
__cpp_lib_shared_ptr_weak_type |
201606L |
__cpp_lib_string_view |
201606L |
__cpp_lib_to_chars |
unimplemented |
__cpp_lib_transparent_operators |
201510L |
__cpp_lib_type_trait_variable_templates |
201510L |
__cpp_lib_uncaught_exceptions |
201411L |
__cpp_lib_unordered_map_try_emplace |
201411L |
__cpp_lib_variant |
202102L |
__cpp_lib_void_t |
201411L |
C++ 20 | |
__cpp_lib_array_constexpr |
201811L |
__cpp_lib_assume_aligned |
201811L |
__cpp_lib_atomic_flag_test |
201907L |
__cpp_lib_atomic_float |
unimplemented |
__cpp_lib_atomic_lock_free_type_aliases |
201907L |
__cpp_lib_atomic_ref |
unimplemented |
__cpp_lib_atomic_shared_ptr |
unimplemented |
__cpp_lib_atomic_value_initialization |
201911L |
__cpp_lib_atomic_wait |
201907L |
__cpp_lib_barrier |
201907L |
__cpp_lib_bind_front |
201907L |
__cpp_lib_bit_cast |
201806L |
__cpp_lib_bitops |
201907L |
__cpp_lib_bounded_array_traits |
201902L |
__cpp_lib_char8_t |
201907L |
__cpp_lib_concepts |
202002L |
__cpp_lib_constexpr_algorithms |
201806L |
__cpp_lib_constexpr_complex |
201711L |
__cpp_lib_constexpr_dynamic_alloc |
201907L |
__cpp_lib_constexpr_functional |
201907L |
__cpp_lib_constexpr_iterator |
201811L |
__cpp_lib_constexpr_memory |
201811L |
__cpp_lib_constexpr_numeric |
201911L |
__cpp_lib_constexpr_string |
201907L |
__cpp_lib_constexpr_string_view |
201811L |
__cpp_lib_constexpr_tuple |
201811L |
__cpp_lib_constexpr_utility |
201811L |
__cpp_lib_constexpr_vector |
201907L |
__cpp_lib_coroutine |
201902L |
__cpp_lib_destroying_delete |
201806L |
__cpp_lib_endian |
201907L |
__cpp_lib_erase_if |
202002L |
__cpp_lib_execution |
unimplemented |
__cpp_lib_format |
unimplemented |
__cpp_lib_generic_unordered_lookup |
201811L |
__cpp_lib_int_pow2 |
202002L |
__cpp_lib_integer_comparison_functions |
202002L |
__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_move_iterator_concept |
202207L |
__cpp_lib_polymorphic_allocator |
201902L |
__cpp_lib_ranges |
202207L |
__cpp_lib_remove_cvref |
201711L |
__cpp_lib_semaphore |
201907L |
__cpp_lib_shared_ptr_arrays |
201707L |
__cpp_lib_shift |
201806L |
__cpp_lib_smart_ptr_for_overwrite |
unimplemented |
__cpp_lib_source_location |
201907L |
__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_type_identity |
201806L |
__cpp_lib_unwrap_ref |
201811L |
C++ 23 | |
__cpp_lib_adaptor_iterator_pair_constructor |
202106L |
__cpp_lib_allocate_at_least |
202106L |
__cpp_lib_associative_heterogeneous_erasure |
unimplemented |
__cpp_lib_bind_back |
unimplemented |
__cpp_lib_byteswap |
202110L |
__cpp_lib_constexpr_bitset |
202207L |
__cpp_lib_constexpr_charconv |
202207L |
__cpp_lib_constexpr_cmath |
unimplemented |
__cpp_lib_constexpr_memory |
202202L |
__cpp_lib_constexpr_typeinfo |
202106L |
__cpp_lib_expected |
202211L |
__cpp_lib_format_ranges |
202207L |
__cpp_lib_formatters |
unimplemented |
__cpp_lib_forward_like |
202207L |
__cpp_lib_invoke_r |
202106L |
__cpp_lib_is_scoped_enum |
202011L |
__cpp_lib_mdspan |
unimplemented |
__cpp_lib_move_only_function |
unimplemented |
__cpp_lib_optional |
202110L |
__cpp_lib_out_ptr |
unimplemented |
__cpp_lib_print |
unimplemented |
__cpp_lib_ranges_as_rvalue |
202207L |
__cpp_lib_ranges_chunk |
unimplemented |
__cpp_lib_ranges_chunk_by |
unimplemented |
__cpp_lib_ranges_iota |
unimplemented |
__cpp_lib_ranges_join_with |
unimplemented |
__cpp_lib_ranges_repeat |
202207L |
__cpp_lib_ranges_slide |
unimplemented |
__cpp_lib_ranges_starts_ends_with |
unimplemented |
__cpp_lib_ranges_to_container |
202202L |
__cpp_lib_ranges_zip |
unimplemented |
__cpp_lib_reference_from_temporary |
unimplemented |
__cpp_lib_spanstream |
unimplemented |
__cpp_lib_stacktrace |
unimplemented |
__cpp_lib_stdatomic_h |
202011L |
__cpp_lib_string_contains |
202011L |
__cpp_lib_string_resize_and_overwrite |
202110L |
__cpp_lib_to_string |
unimplemented |
__cpp_lib_to_underlying |
202102L |
__cpp_lib_unreachable |
202202L |
C++ 26 | |
__cpp_lib_associative_heterogeneous_insertion |
unimplemented |
__cpp_lib_bind_back |
unimplemented |
__cpp_lib_bind_front |
202306L |
__cpp_lib_bitset |
unimplemented |
__cpp_lib_copyable_function |
unimplemented |
__cpp_lib_fstream_native_handle |
unimplemented |
__cpp_lib_function_ref |
unimplemented |
__cpp_lib_hazard_pointer |
unimplemented |
__cpp_lib_ratio |
202306L |
__cpp_lib_rcu |
unimplemented |
__cpp_lib_smart_ptr_owner_equality |
unimplemented |
__cpp_lib_sstream_from_string_view |
unimplemented |
__cpp_lib_submdspan |
unimplemented |
__cpp_lib_text_encoding |
unimplemented |
__cpp_lib_within_lifetime |
unimplemented |