mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-24 06:10:12 +00:00
[libc++] Update status after Varna meeting.
This updates: - The status tables - Feature test macros - New headers for modules The latter avoids forgetting about modules when implementing the feature in a new header. Reviewed By: #libc, philnik Differential Revision: https://reviews.llvm.org/D153192
This commit is contained in:
parent
72e598957c
commit
3f05d044f4
@ -21,359 +21,391 @@ Status
|
|||||||
:name: feature-status-table
|
:name: feature-status-table
|
||||||
:widths: auto
|
:widths: auto
|
||||||
|
|
||||||
================================================= =================
|
=================================================== =================
|
||||||
Macro Name Value
|
Macro Name Value
|
||||||
================================================= =================
|
=================================================== =================
|
||||||
**C++ 14**
|
**C++ 14**
|
||||||
-------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
``__cpp_lib_chrono_udls`` ``201304L``
|
``__cpp_lib_chrono_udls`` ``201304L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_complex_udls`` ``201309L``
|
``__cpp_lib_complex_udls`` ``201309L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_exchange_function`` ``201304L``
|
``__cpp_lib_exchange_function`` ``201304L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_generic_associative_lookup`` ``201304L``
|
``__cpp_lib_generic_associative_lookup`` ``201304L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_integer_sequence`` ``201304L``
|
``__cpp_lib_integer_sequence`` ``201304L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_integral_constant_callable`` ``201304L``
|
``__cpp_lib_integral_constant_callable`` ``201304L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_is_final`` ``201402L``
|
``__cpp_lib_is_final`` ``201402L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_is_null_pointer`` ``201309L``
|
``__cpp_lib_is_null_pointer`` ``201309L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_make_reverse_iterator`` ``201402L``
|
``__cpp_lib_make_reverse_iterator`` ``201402L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_make_unique`` ``201304L``
|
``__cpp_lib_make_unique`` ``201304L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_null_iterators`` ``201304L``
|
``__cpp_lib_null_iterators`` ``201304L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_quoted_string_io`` ``201304L``
|
``__cpp_lib_quoted_string_io`` ``201304L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_result_of_sfinae`` ``201210L``
|
``__cpp_lib_result_of_sfinae`` ``201210L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_robust_nonmodifying_seq_ops`` ``201304L``
|
``__cpp_lib_robust_nonmodifying_seq_ops`` ``201304L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_shared_timed_mutex`` ``201402L``
|
``__cpp_lib_shared_timed_mutex`` ``201402L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_string_udls`` ``201304L``
|
``__cpp_lib_string_udls`` ``201304L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_transformation_trait_aliases`` ``201304L``
|
``__cpp_lib_transformation_trait_aliases`` ``201304L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_transparent_operators`` ``201210L``
|
``__cpp_lib_transparent_operators`` ``201210L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_tuple_element_t`` ``201402L``
|
``__cpp_lib_tuple_element_t`` ``201402L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_tuples_by_type`` ``201304L``
|
``__cpp_lib_tuples_by_type`` ``201304L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
**C++ 17**
|
**C++ 17**
|
||||||
-------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
``__cpp_lib_addressof_constexpr`` ``201603L``
|
``__cpp_lib_addressof_constexpr`` ``201603L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_allocator_traits_is_always_equal`` ``201411L``
|
``__cpp_lib_allocator_traits_is_always_equal`` ``201411L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_any`` ``201606L``
|
``__cpp_lib_any`` ``201606L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_apply`` ``201603L``
|
``__cpp_lib_apply`` ``201603L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_array_constexpr`` ``201603L``
|
``__cpp_lib_array_constexpr`` ``201603L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_as_const`` ``201510L``
|
``__cpp_lib_as_const`` ``201510L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_atomic_is_always_lock_free`` ``201603L``
|
``__cpp_lib_atomic_is_always_lock_free`` ``201603L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_bool_constant`` ``201505L``
|
``__cpp_lib_bool_constant`` ``201505L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_boyer_moore_searcher`` ``201603L``
|
``__cpp_lib_boyer_moore_searcher`` ``201603L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_byte`` ``201603L``
|
``__cpp_lib_byte`` ``201603L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_chrono`` ``201611L``
|
``__cpp_lib_chrono`` ``201611L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_clamp`` ``201603L``
|
``__cpp_lib_clamp`` ``201603L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_enable_shared_from_this`` ``201603L``
|
``__cpp_lib_enable_shared_from_this`` ``201603L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_execution`` *unimplemented*
|
``__cpp_lib_execution`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_filesystem`` ``201703L``
|
``__cpp_lib_filesystem`` ``201703L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_gcd_lcm`` ``201606L``
|
``__cpp_lib_gcd_lcm`` ``201606L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_hardware_interference_size`` ``201703L``
|
``__cpp_lib_hardware_interference_size`` ``201703L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_has_unique_object_representations`` ``201606L``
|
``__cpp_lib_has_unique_object_representations`` ``201606L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_hypot`` ``201603L``
|
``__cpp_lib_hypot`` ``201603L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_incomplete_container_elements`` ``201505L``
|
``__cpp_lib_incomplete_container_elements`` ``201505L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_invoke`` ``201411L``
|
``__cpp_lib_invoke`` ``201411L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_is_aggregate`` ``201703L``
|
``__cpp_lib_is_aggregate`` ``201703L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_is_invocable`` ``201703L``
|
``__cpp_lib_is_invocable`` ``201703L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_is_swappable`` ``201603L``
|
``__cpp_lib_is_swappable`` ``201603L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_launder`` ``201606L``
|
``__cpp_lib_launder`` ``201606L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_logical_traits`` ``201510L``
|
``__cpp_lib_logical_traits`` ``201510L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_make_from_tuple`` ``201606L``
|
``__cpp_lib_make_from_tuple`` ``201606L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_map_try_emplace`` ``201411L``
|
``__cpp_lib_map_try_emplace`` ``201411L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_math_special_functions`` *unimplemented*
|
``__cpp_lib_math_special_functions`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_memory_resource`` ``201603L``
|
``__cpp_lib_memory_resource`` ``201603L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_node_extract`` ``201606L``
|
``__cpp_lib_node_extract`` ``201606L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_nonmember_container_access`` ``201411L``
|
``__cpp_lib_nonmember_container_access`` ``201411L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_not_fn`` ``201603L``
|
``__cpp_lib_not_fn`` ``201603L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_optional`` ``201606L``
|
``__cpp_lib_optional`` ``201606L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_parallel_algorithm`` *unimplemented*
|
``__cpp_lib_parallel_algorithm`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_raw_memory_algorithms`` ``201606L``
|
``__cpp_lib_raw_memory_algorithms`` ``201606L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_sample`` ``201603L``
|
``__cpp_lib_sample`` ``201603L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_scoped_lock`` ``201703L``
|
``__cpp_lib_scoped_lock`` ``201703L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_shared_mutex`` ``201505L``
|
``__cpp_lib_shared_mutex`` ``201505L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_shared_ptr_arrays`` ``201611L``
|
``__cpp_lib_shared_ptr_arrays`` ``201611L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_shared_ptr_weak_type`` ``201606L``
|
``__cpp_lib_shared_ptr_weak_type`` ``201606L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_string_view`` ``201606L``
|
``__cpp_lib_string_view`` ``201606L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_to_chars`` *unimplemented*
|
``__cpp_lib_to_chars`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_transparent_operators`` ``201510L``
|
``__cpp_lib_transparent_operators`` ``201510L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_type_trait_variable_templates`` ``201510L``
|
``__cpp_lib_type_trait_variable_templates`` ``201510L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_uncaught_exceptions`` ``201411L``
|
``__cpp_lib_uncaught_exceptions`` ``201411L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_unordered_map_try_emplace`` ``201411L``
|
``__cpp_lib_unordered_map_try_emplace`` ``201411L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_variant`` ``202102L``
|
``__cpp_lib_variant`` ``202102L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_void_t`` ``201411L``
|
``__cpp_lib_void_t`` ``201411L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
**C++ 20**
|
**C++ 20**
|
||||||
-------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
``__cpp_lib_array_constexpr`` ``201811L``
|
``__cpp_lib_array_constexpr`` ``201811L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_assume_aligned`` ``201811L``
|
``__cpp_lib_assume_aligned`` ``201811L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_atomic_flag_test`` ``201907L``
|
``__cpp_lib_atomic_flag_test`` ``201907L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_atomic_float`` *unimplemented*
|
``__cpp_lib_atomic_float`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_atomic_lock_free_type_aliases`` ``201907L``
|
``__cpp_lib_atomic_lock_free_type_aliases`` ``201907L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_atomic_ref`` *unimplemented*
|
``__cpp_lib_atomic_ref`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_atomic_shared_ptr`` *unimplemented*
|
``__cpp_lib_atomic_shared_ptr`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_atomic_value_initialization`` ``201911L``
|
``__cpp_lib_atomic_value_initialization`` ``201911L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_atomic_wait`` ``201907L``
|
``__cpp_lib_atomic_wait`` ``201907L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_barrier`` ``201907L``
|
``__cpp_lib_barrier`` ``201907L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_bind_front`` ``201907L``
|
``__cpp_lib_bind_front`` ``201907L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_bit_cast`` ``201806L``
|
``__cpp_lib_bit_cast`` ``201806L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_bitops`` *unimplemented*
|
``__cpp_lib_bitops`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_bounded_array_traits`` ``201902L``
|
``__cpp_lib_bounded_array_traits`` ``201902L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_char8_t`` ``201907L``
|
``__cpp_lib_char8_t`` ``201907L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_concepts`` ``202002L``
|
``__cpp_lib_concepts`` ``202002L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_constexpr_algorithms`` ``201806L``
|
``__cpp_lib_constexpr_algorithms`` ``201806L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_constexpr_complex`` ``201711L``
|
``__cpp_lib_constexpr_complex`` ``201711L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_constexpr_dynamic_alloc`` ``201907L``
|
``__cpp_lib_constexpr_dynamic_alloc`` ``201907L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_constexpr_functional`` ``201907L``
|
``__cpp_lib_constexpr_functional`` ``201907L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_constexpr_iterator`` ``201811L``
|
``__cpp_lib_constexpr_iterator`` ``201811L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_constexpr_memory`` ``201811L``
|
``__cpp_lib_constexpr_memory`` ``201811L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_constexpr_numeric`` ``201911L``
|
``__cpp_lib_constexpr_numeric`` ``201911L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_constexpr_string`` ``201907L``
|
``__cpp_lib_constexpr_string`` ``201907L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_constexpr_string_view`` ``201811L``
|
``__cpp_lib_constexpr_string_view`` ``201811L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_constexpr_tuple`` ``201811L``
|
``__cpp_lib_constexpr_tuple`` ``201811L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_constexpr_utility`` ``201811L``
|
``__cpp_lib_constexpr_utility`` ``201811L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_constexpr_vector`` ``201907L``
|
``__cpp_lib_constexpr_vector`` ``201907L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_coroutine`` ``201902L``
|
``__cpp_lib_coroutine`` ``201902L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_destroying_delete`` ``201806L``
|
``__cpp_lib_destroying_delete`` ``201806L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_endian`` ``201907L``
|
``__cpp_lib_endian`` ``201907L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_erase_if`` ``202002L``
|
``__cpp_lib_erase_if`` ``202002L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_execution`` *unimplemented*
|
``__cpp_lib_execution`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_format`` *unimplemented*
|
``__cpp_lib_format`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_generic_unordered_lookup`` ``201811L``
|
``__cpp_lib_generic_unordered_lookup`` ``201811L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_int_pow2`` ``202002L``
|
``__cpp_lib_int_pow2`` ``202002L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_integer_comparison_functions`` ``202002L``
|
``__cpp_lib_integer_comparison_functions`` ``202002L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_interpolate`` ``201902L``
|
``__cpp_lib_interpolate`` ``201902L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_is_constant_evaluated`` ``201811L``
|
``__cpp_lib_is_constant_evaluated`` ``201811L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_is_layout_compatible`` *unimplemented*
|
``__cpp_lib_is_layout_compatible`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_is_nothrow_convertible`` ``201806L``
|
``__cpp_lib_is_nothrow_convertible`` ``201806L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_is_pointer_interconvertible`` *unimplemented*
|
``__cpp_lib_is_pointer_interconvertible`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_jthread`` *unimplemented*
|
``__cpp_lib_jthread`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_latch`` ``201907L``
|
``__cpp_lib_latch`` ``201907L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_list_remove_return_type`` ``201806L``
|
``__cpp_lib_list_remove_return_type`` ``201806L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_math_constants`` ``201907L``
|
``__cpp_lib_math_constants`` ``201907L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_move_iterator_concept`` ``202207L``
|
``__cpp_lib_move_iterator_concept`` ``202207L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_polymorphic_allocator`` ``201902L``
|
``__cpp_lib_polymorphic_allocator`` ``201902L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_ranges`` ``202106L``
|
``__cpp_lib_ranges`` ``202106L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_remove_cvref`` ``201711L``
|
``__cpp_lib_remove_cvref`` ``201711L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_semaphore`` ``201907L``
|
``__cpp_lib_semaphore`` ``201907L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_shared_ptr_arrays`` ``201707L``
|
``__cpp_lib_shared_ptr_arrays`` ``201707L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_shift`` ``201806L``
|
``__cpp_lib_shift`` ``201806L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_smart_ptr_for_overwrite`` *unimplemented*
|
``__cpp_lib_smart_ptr_for_overwrite`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_source_location`` ``201907L``
|
``__cpp_lib_source_location`` ``201907L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_span`` ``202002L``
|
``__cpp_lib_span`` ``202002L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_ssize`` ``201902L``
|
``__cpp_lib_ssize`` ``201902L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_starts_ends_with`` ``201711L``
|
``__cpp_lib_starts_ends_with`` ``201711L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_string_view`` ``201803L``
|
``__cpp_lib_string_view`` ``201803L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_syncbuf`` *unimplemented*
|
``__cpp_lib_syncbuf`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_three_way_comparison`` *unimplemented*
|
``__cpp_lib_three_way_comparison`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_to_address`` ``201711L``
|
``__cpp_lib_to_address`` ``201711L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_to_array`` ``201907L``
|
``__cpp_lib_to_array`` ``201907L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_type_identity`` ``201806L``
|
``__cpp_lib_type_identity`` ``201806L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_unwrap_ref`` ``201811L``
|
``__cpp_lib_unwrap_ref`` ``201811L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
**C++ 23**
|
**C++ 23**
|
||||||
-------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
``__cpp_lib_adaptor_iterator_pair_constructor`` ``202106L``
|
``__cpp_lib_adaptor_iterator_pair_constructor`` ``202106L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_allocate_at_least`` ``202106L``
|
``__cpp_lib_allocate_at_least`` ``202106L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_associative_heterogeneous_erasure`` *unimplemented*
|
``__cpp_lib_associative_heterogeneous_erasure`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_bind_back`` *unimplemented*
|
``__cpp_lib_bind_back`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_byteswap`` ``202110L``
|
``__cpp_lib_byteswap`` ``202110L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_constexpr_bitset`` ``202207L``
|
``__cpp_lib_constexpr_bitset`` ``202207L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_constexpr_charconv`` ``202207L``
|
``__cpp_lib_constexpr_charconv`` ``202207L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_constexpr_cmath`` *unimplemented*
|
``__cpp_lib_constexpr_cmath`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_constexpr_memory`` ``202202L``
|
``__cpp_lib_constexpr_memory`` ``202202L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_constexpr_typeinfo`` ``202106L``
|
``__cpp_lib_constexpr_typeinfo`` ``202106L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_expected`` ``202211L``
|
``__cpp_lib_expected`` ``202211L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_format_ranges`` ``202207L``
|
``__cpp_lib_format_ranges`` ``202207L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_formatters`` *unimplemented*
|
``__cpp_lib_formatters`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_forward_like`` ``202207L``
|
``__cpp_lib_forward_like`` ``202207L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_invoke_r`` ``202106L``
|
``__cpp_lib_invoke_r`` ``202106L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_is_scoped_enum`` ``202011L``
|
``__cpp_lib_is_scoped_enum`` ``202011L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_mdspan`` *unimplemented*
|
``__cpp_lib_mdspan`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_move_only_function`` *unimplemented*
|
``__cpp_lib_move_only_function`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_optional`` ``202110L``
|
``__cpp_lib_optional`` ``202110L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_out_ptr`` *unimplemented*
|
``__cpp_lib_out_ptr`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_ranges_as_rvalue`` ``202207L``
|
``__cpp_lib_ranges_as_rvalue`` ``202207L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_ranges_chunk`` *unimplemented*
|
``__cpp_lib_ranges_chunk`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_ranges_chunk_by`` *unimplemented*
|
``__cpp_lib_ranges_chunk_by`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_ranges_iota`` *unimplemented*
|
``__cpp_lib_ranges_iota`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_ranges_join_with`` *unimplemented*
|
``__cpp_lib_ranges_join_with`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_ranges_slide`` *unimplemented*
|
``__cpp_lib_ranges_slide`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_ranges_starts_ends_with`` *unimplemented*
|
``__cpp_lib_ranges_starts_ends_with`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_ranges_to_container`` *unimplemented*
|
``__cpp_lib_ranges_to_container`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_ranges_zip`` *unimplemented*
|
``__cpp_lib_ranges_zip`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_reference_from_temporary`` *unimplemented*
|
``__cpp_lib_reference_from_temporary`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_spanstream`` *unimplemented*
|
``__cpp_lib_spanstream`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_stacktrace`` *unimplemented*
|
``__cpp_lib_stacktrace`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_stdatomic_h`` ``202011L``
|
``__cpp_lib_stdatomic_h`` ``202011L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_string_contains`` ``202011L``
|
``__cpp_lib_string_contains`` ``202011L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_string_resize_and_overwrite`` ``202110L``
|
``__cpp_lib_string_resize_and_overwrite`` ``202110L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_to_underlying`` ``202102L``
|
``__cpp_lib_to_string`` *unimplemented*
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
``__cpp_lib_unreachable`` ``202202L``
|
``__cpp_lib_to_underlying`` ``202102L``
|
||||||
------------------------------------------------- -----------------
|
--------------------------------------------------- -----------------
|
||||||
|
``__cpp_lib_unreachable`` ``202202L``
|
||||||
|
--------------------------------------------------- -----------------
|
||||||
**C++ 26**
|
**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`` *unimplemented*
|
||||||
|
--------------------------------------------------- -----------------
|
||||||
|
``__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*
|
||||||
|
=================================================== =================
|
||||||
|
|
||||||
|
@ -1,5 +1,22 @@
|
|||||||
"Issue #","Issue Name","Meeting","Status","First released version","Labels"
|
"Issue #","Issue Name","Meeting","Status","First released version","Labels"
|
||||||
|
"`2994 <https://wg21.link/LWG2994>`__","Needless UB for ``basic_string`` and ``basic_string_view``","Varna June 2023","","",""
|
||||||
|
"`3884 <https://wg21.link/LWG3884>`__","``flat_foo`` is missing allocator-extended copy/move constructors","Varna June 2023","","","|flat_containers|"
|
||||||
|
"`3885 <https://wg21.link/LWG3885>`__","``op`` should be in [zombie.names]","Varna June 2023","","",""
|
||||||
|
"`3887 <https://wg21.link/LWG3887>`__","Version macro for ``allocate_at_least``","Varna June 2023","","",""
|
||||||
|
"`3893 <https://wg21.link/LWG3893>`__","LWG 3661 broke ``atomic<shared_ptr<T>> a; a = nullptr;``","Varna June 2023","","",""
|
||||||
|
"`3894 <https://wg21.link/LWG3894>`__","``generator::promise_type::yield_value(ranges::elements_of<Rng, Alloc>)`` should not be ``noexcept``","Varna June 2023","","",""
|
||||||
|
"`3903 <https://wg21.link/LWG3903>`__","span destructor is redundantly noexcept","Varna June 2023","","",""
|
||||||
|
"`3904 <https://wg21.link/LWG3904>`__","``lazy_split_view::outer-iterator``'s const-converting constructor isn't setting ``trailing_empty_``","Varna June 2023","","","|ranges|"
|
||||||
|
"`3905 <https://wg21.link/LWG3905>`__","Type of ``std::fexcept_t``","Varna June 2023","","",""
|
||||||
|
"`3912 <https://wg21.link/LWG3912>`__","``enumerate_view::iterator::operator-`` should be ``noexcept``","Varna June 2023","","","|ranges|"
|
||||||
|
"`3914 <https://wg21.link/LWG3914>`__","Inconsistent template-head of ``ranges::enumerate_view``","Varna June 2023","","","|ranges|"
|
||||||
|
"`3915 <https://wg21.link/LWG3915>`__","Redundant paragraph about expression variations","Varna June 2023","","","|ranges|"
|
||||||
|
"`3925 <https://wg21.link/LWG3925>`__","Concept ``formattable``'s definition is incorrect","Varna June 2023","|In Progress|","","|format|"
|
||||||
|
"`3927 <https://wg21.link/LWG3927>`__","Unclear preconditions for ``operator[]`` for sequence containers","Varna June 2023","","",""
|
||||||
|
"`3935 <https://wg21.link/LWG3935>`__","``template<class X> constexpr complex& operator=(const complex<X>&)`` has no specification","Varna June 2023","","",""
|
||||||
|
"`3938 <https://wg21.link/LWG3938>`__","Cannot use ``std::expected`` monadic ops with move-only ``error_type``","Varna June 2023","","",""
|
||||||
|
"`3940 <https://wg21.link/LWG3940>`__","``std::expected<void, E>::value()`` also needs ``E`` to be copy constructible","Varna June 2023","","",""
|
||||||
"","","","","",""
|
"","","","","",""
|
||||||
"`3343 <https://wg21.link/LWG3343>`__","Ordering of calls to ``unlock()`` and ``notify_all()`` in Effects element of ``notify_all_at_thread_exit()`` should be reversed","Not Yet Adopted","|Complete|","16.0",""
|
"`3343 <https://wg21.link/LWG3343>`__","Ordering of calls to ``unlock()`` and ``notify_all()`` in Effects element of ``notify_all_at_thread_exit()`` should be reversed","Not Yet Adopted","|Complete|","16.0",""
|
||||||
"`3892 <https://wg21.link/LWG3892>`__","Incorrect formatting of nested ranges and tuples","Not Yet Adopted","|Complete|","17.0",""
|
"`3892 <https://wg21.link/LWG3892>`__","Incorrect formatting of nested ranges and tuples","Not Yet Adopted","|Complete|","17.0","|format|"
|
||||||
"","","","","",""
|
"","","","","",""
|
||||||
|
|
@ -1,2 +1,29 @@
|
|||||||
"Paper #","Group","Paper Name","Meeting","Status","First released version","Labels"
|
"Paper #","Group","Paper Name","Meeting","Status","First released version","Labels"
|
||||||
|
"`P2497R0 <https://wg21.link/P2497R0>`__","LWG","Testing for success or failure of ``<charconv>`` functions","Varna June 2023","","",""
|
||||||
|
"`P2592R3 <https://wg21.link/P2592R3>`__","LWG","Hashing support for ``std::chrono`` value classes","Varna June 2023","","",""
|
||||||
|
"`P2587R3 <https://wg21.link/P2587R3>`__","LWG","``to_string`` or not ``to_string``","Varna June 2023","","","|format|"
|
||||||
|
"`P2562R1 <https://wg21.link/P2562R1>`__","LWG","``constexpr`` Stable Sorting","Varna June 2023","","",""
|
||||||
|
"`P2545R4 <https://wg21.link/P2545R4>`__","LWG","Read-Copy Update (RCU)","Varna June 2023","","",""
|
||||||
|
"`P2530R3 <https://wg21.link/P2530R3>`__","LWG","Hazard Pointers for C++26","Varna June 2023","","",""
|
||||||
|
"`P2538R1 <https://wg21.link/P2538R1>`__","LWG","ADL-proof ``std::projected``","Varna June 2023","","","|ranges|"
|
||||||
|
"`P2495R3 <https://wg21.link/P2495R3>`__","LWG","Interfacing ``stringstreams`` with ``string_view``","Varna June 2023","","",""
|
||||||
|
"`P2510R3 <https://wg21.link/P2510R3>`__","LWG","Formatting pointers","Varna June 2023","|In Progress|","","|format|"
|
||||||
|
"`P2198R7 <https://wg21.link/P2198R7>`__","LWG","Freestanding Feature-Test Macros and Implementation-Defined Extensions","Varna June 2023","","",""
|
||||||
|
"`P2338R4 <https://wg21.link/P2338R4>`__","LWG","Freestanding Library: Character primitives and the C library","Varna June 2023","","",""
|
||||||
|
"`P2013R5 <https://wg21.link/P2013R5>`__","LWG","Freestanding Language: Optional ``::operator new``","Varna June 2023","","",""
|
||||||
|
"`P2363R5 <https://wg21.link/P2363R5>`__","LWG","Extending associative containers with the remaining heterogeneous overloads","Varna June 2023","","",""
|
||||||
|
"`P1901R2 <https://wg21.link/P1901R2>`__","LWG","Enabling the Use of ``weak_ptr`` as Keys in Unordered Associative Containers","Varna June 2023","","",""
|
||||||
|
"`P1885R12 <https://wg21.link/P1885R12>`__","LWG","Naming Text Encodings to Demystify Them","Varna June 2023","","",""
|
||||||
|
"`P0792R14 <https://wg21.link/P0792R14>`__","LWG","``function_ref``: a type-erased callable reference","Varna June 2023","","",""
|
||||||
|
"`P2874R2 <https://wg21.link/P2874R2>`__","LWG","Mandating Annex D Require No More","Varna June 2023","","",""
|
||||||
|
"`P2757R3 <https://wg21.link/P2757R3>`__","LWG","Type-checking format args","Varna June 2023","","","|format|"
|
||||||
|
"`P2637R3 <https://wg21.link/P2637R3>`__","LWG","Member ``visit``","Varna June 2023","","","|format|"
|
||||||
|
"`P2641R4 <https://wg21.link/P2641R4>`__","CWG, LWG","Checking if a ``union`` alternative is active","Varna June 2023","","",""
|
||||||
|
"`P1759R6 <https://wg21.link/P1759R6>`__","LWG","Native handles and file streams","Varna June 2023","","",""
|
||||||
|
"`P2697R1 <https://wg21.link/P2697R1>`__","LWG","Interfacing ``bitset`` with ``string_view``","Varna June 2023","","",""
|
||||||
|
"`P1383R2 <https://wg21.link/P1383R2>`__","LWG","More ``constexpr`` for ``<cmath>`` and ``<complex>``","Varna June 2023","","",""
|
||||||
|
"`P2734R0 <https://wg21.link/P2734R0>`__","LWG","Adding the new SI prefixes","Varna June 2023","","",""
|
||||||
|
"`P2548R6 <https://wg21.link/P2548R6>`__","LWG","``copyable_function``","Varna June 2023","","",""
|
||||||
|
"`P2714R1 <https://wg21.link/P2714R1>`__","LWG","Bind front and back to NTTP callables","Varna June 2023","","",""
|
||||||
|
"`P2630R4 <https://wg21.link/P2630R4>`__","LWG","``submdspan``","Varna June 2023","","",""
|
||||||
"","","","","","",""
|
"","","","","","",""
|
||||||
|
|
@ -14,6 +14,9 @@ Number,Name,Standard,Assignee,Status,First released version
|
|||||||
"`P2675R1 <https://wg21.link/P2675R1>`__","``format``'s width estimation is too approximate and not forward compatible","C++23","Mark de Wever","|Complete|", Clang 17
|
"`P2675R1 <https://wg21.link/P2675R1>`__","``format``'s width estimation is too approximate and not forward compatible","C++23","Mark de Wever","|Complete|", Clang 17
|
||||||
"`P2572R1 <https://wg21.link/P2572R1>`__","``std::format`` fill character allowances","C++23","Mark de Wever","|Complete|", Clang 17
|
"`P2572R1 <https://wg21.link/P2572R1>`__","``std::format`` fill character allowances","C++23","Mark de Wever","|Complete|", Clang 17
|
||||||
"`P2693R1 <https://wg21.link/P2693R1>`__","Formatting ``thread::id`` and ``stacktrace``","C++23","Mark de Wever","|In progress|"
|
"`P2693R1 <https://wg21.link/P2693R1>`__","Formatting ``thread::id`` and ``stacktrace``","C++23","Mark de Wever","|In progress|"
|
||||||
|
"`P2510R3 <https://wg21.link/P2510R3>`__","Formatting pointers","C++26","Mark de Wever","|In Progress|",
|
||||||
|
"`P2757R3 <https://wg21.link/P2757R3>`__","Type-checking format args","C++26","","",
|
||||||
|
"`P2637R3 <https://wg21.link/P2637R3>`__","Member ``visit``","C++26","","",
|
||||||
`P1361 <https://wg21.link/P1361>`_,"Integration of chrono with text formatting","C++20",Mark de Wever,|In Progress|,
|
`P1361 <https://wg21.link/P1361>`_,"Integration of chrono with text formatting","C++20",Mark de Wever,|In Progress|,
|
||||||
`P2372 <https://wg21.link/P2372>`__,"Fixing locale handling in chrono formatters","C++20",Mark de Wever,|In Progress|,
|
`P2372 <https://wg21.link/P2372>`__,"Fixing locale handling in chrono formatters","C++20",Mark de Wever,|In Progress|,
|
||||||
"`P2419R2 <https://wg21.link/P2419R2>`__","Clarify handling of encodings in localized formatting of chrono types","C++23",
|
"`P2419R2 <https://wg21.link/P2419R2>`__","Clarify handling of encodings in localized formatting of chrono types","C++23",
|
||||||
|
Can't render this file because it has a wrong number of fields in line 12.
|
@ -28,6 +28,8 @@ __cpp_lib_array_constexpr 201811L <array> <iterato
|
|||||||
__cpp_lib_as_const 201510L <utility>
|
__cpp_lib_as_const 201510L <utility>
|
||||||
__cpp_lib_associative_heterogeneous_erasure 202110L <map> <set> <unordered_map>
|
__cpp_lib_associative_heterogeneous_erasure 202110L <map> <set> <unordered_map>
|
||||||
<unordered_set>
|
<unordered_set>
|
||||||
|
__cpp_lib_associative_heterogeneous_insertion 202306L <map> <set> <unordered_map>
|
||||||
|
<unordered_set>
|
||||||
__cpp_lib_assume_aligned 201811L <memory>
|
__cpp_lib_assume_aligned 201811L <memory>
|
||||||
__cpp_lib_atomic_flag_test 201907L <atomic>
|
__cpp_lib_atomic_flag_test 201907L <atomic>
|
||||||
__cpp_lib_atomic_float 201711L <atomic>
|
__cpp_lib_atomic_float 201711L <atomic>
|
||||||
@ -38,10 +40,13 @@ __cpp_lib_atomic_shared_ptr 201711L <atomic>
|
|||||||
__cpp_lib_atomic_value_initialization 201911L <atomic> <memory>
|
__cpp_lib_atomic_value_initialization 201911L <atomic> <memory>
|
||||||
__cpp_lib_atomic_wait 201907L <atomic>
|
__cpp_lib_atomic_wait 201907L <atomic>
|
||||||
__cpp_lib_barrier 201907L <barrier>
|
__cpp_lib_barrier 201907L <barrier>
|
||||||
__cpp_lib_bind_back 202202L <functional>
|
__cpp_lib_bind_back 202306L <functional>
|
||||||
__cpp_lib_bind_front 201907L <functional>
|
202202L // C++23
|
||||||
|
__cpp_lib_bind_front 202306L <functional>
|
||||||
|
201907L // C++20
|
||||||
__cpp_lib_bit_cast 201806L <bit>
|
__cpp_lib_bit_cast 201806L <bit>
|
||||||
__cpp_lib_bitops 201907L <bit>
|
__cpp_lib_bitops 201907L <bit>
|
||||||
|
__cpp_lib_bitset 202306L <bitset>
|
||||||
__cpp_lib_bool_constant 201505L <type_traits>
|
__cpp_lib_bool_constant 201505L <type_traits>
|
||||||
__cpp_lib_bounded_array_traits 201902L <type_traits>
|
__cpp_lib_bounded_array_traits 201902L <type_traits>
|
||||||
__cpp_lib_boyer_moore_searcher 201603L <functional>
|
__cpp_lib_boyer_moore_searcher 201603L <functional>
|
||||||
@ -72,6 +77,7 @@ __cpp_lib_constexpr_tuple 201811L <tuple>
|
|||||||
__cpp_lib_constexpr_typeinfo 202106L <typeinfo>
|
__cpp_lib_constexpr_typeinfo 202106L <typeinfo>
|
||||||
__cpp_lib_constexpr_utility 201811L <utility>
|
__cpp_lib_constexpr_utility 201811L <utility>
|
||||||
__cpp_lib_constexpr_vector 201907L <vector>
|
__cpp_lib_constexpr_vector 201907L <vector>
|
||||||
|
__cpp_lib_copyable_function 202306L <functional>
|
||||||
__cpp_lib_coroutine 201902L <coroutine>
|
__cpp_lib_coroutine 201902L <coroutine>
|
||||||
__cpp_lib_destroying_delete 201806L <new>
|
__cpp_lib_destroying_delete 201806L <new>
|
||||||
__cpp_lib_enable_shared_from_this 201603L <memory>
|
__cpp_lib_enable_shared_from_this 201603L <memory>
|
||||||
@ -88,11 +94,14 @@ __cpp_lib_format 202106L <format>
|
|||||||
__cpp_lib_format_ranges 202207L <format>
|
__cpp_lib_format_ranges 202207L <format>
|
||||||
__cpp_lib_formatters 202302L <stacktrace> <thread>
|
__cpp_lib_formatters 202302L <stacktrace> <thread>
|
||||||
__cpp_lib_forward_like 202207L <utility>
|
__cpp_lib_forward_like 202207L <utility>
|
||||||
|
__cpp_lib_fstream_native_handle 202306L <fstream>
|
||||||
|
__cpp_lib_function_ref 202306L <functional>
|
||||||
__cpp_lib_gcd_lcm 201606L <numeric>
|
__cpp_lib_gcd_lcm 201606L <numeric>
|
||||||
__cpp_lib_generic_associative_lookup 201304L <map> <set>
|
__cpp_lib_generic_associative_lookup 201304L <map> <set>
|
||||||
__cpp_lib_generic_unordered_lookup 201811L <unordered_map> <unordered_set>
|
__cpp_lib_generic_unordered_lookup 201811L <unordered_map> <unordered_set>
|
||||||
__cpp_lib_hardware_interference_size 201703L <new>
|
__cpp_lib_hardware_interference_size 201703L <new>
|
||||||
__cpp_lib_has_unique_object_representations 201606L <type_traits>
|
__cpp_lib_has_unique_object_representations 201606L <type_traits>
|
||||||
|
__cpp_lib_hazard_pointer 202306L <hazard_pointer>
|
||||||
__cpp_lib_hypot 201603L <cmath>
|
__cpp_lib_hypot 201603L <cmath>
|
||||||
__cpp_lib_incomplete_container_elements 201505L <forward_list> <list> <vector>
|
__cpp_lib_incomplete_container_elements 201505L <forward_list> <list> <vector>
|
||||||
__cpp_lib_int_pow2 202002L <bit>
|
__cpp_lib_int_pow2 202002L <bit>
|
||||||
@ -155,7 +164,9 @@ __cpp_lib_ranges_to_container 202202L <deque> <forward
|
|||||||
<set> <stack> <string>
|
<set> <stack> <string>
|
||||||
<unordered_map> <unordered_set> <vector>
|
<unordered_map> <unordered_set> <vector>
|
||||||
__cpp_lib_ranges_zip 202110L <ranges> <tuple> <utility>
|
__cpp_lib_ranges_zip 202110L <ranges> <tuple> <utility>
|
||||||
|
__cpp_lib_ratio 202306L <ratio>
|
||||||
__cpp_lib_raw_memory_algorithms 201606L <memory>
|
__cpp_lib_raw_memory_algorithms 201606L <memory>
|
||||||
|
__cpp_lib_rcu 202306L <rcu>
|
||||||
__cpp_lib_reference_from_temporary 202202L <type_traits>
|
__cpp_lib_reference_from_temporary 202202L <type_traits>
|
||||||
__cpp_lib_remove_cvref 201711L <type_traits>
|
__cpp_lib_remove_cvref 201711L <type_traits>
|
||||||
__cpp_lib_result_of_sfinae 201210L <functional> <type_traits>
|
__cpp_lib_result_of_sfinae 201210L <functional> <type_traits>
|
||||||
@ -170,10 +181,12 @@ __cpp_lib_shared_ptr_weak_type 201606L <memory>
|
|||||||
__cpp_lib_shared_timed_mutex 201402L <shared_mutex>
|
__cpp_lib_shared_timed_mutex 201402L <shared_mutex>
|
||||||
__cpp_lib_shift 201806L <algorithm>
|
__cpp_lib_shift 201806L <algorithm>
|
||||||
__cpp_lib_smart_ptr_for_overwrite 202002L <memory>
|
__cpp_lib_smart_ptr_for_overwrite 202002L <memory>
|
||||||
|
__cpp_lib_smart_ptr_owner_equality 202306L <memory>
|
||||||
__cpp_lib_source_location 201907L <source_location>
|
__cpp_lib_source_location 201907L <source_location>
|
||||||
__cpp_lib_span 202002L <span>
|
__cpp_lib_span 202002L <span>
|
||||||
__cpp_lib_spanstream 202106L <spanstream>
|
__cpp_lib_spanstream 202106L <spanstream>
|
||||||
__cpp_lib_ssize 201902L <iterator>
|
__cpp_lib_ssize 201902L <iterator>
|
||||||
|
__cpp_lib_sstream_from_string_view 202306L <sstream>
|
||||||
__cpp_lib_stacktrace 202011L <stacktrace>
|
__cpp_lib_stacktrace 202011L <stacktrace>
|
||||||
__cpp_lib_starts_ends_with 201711L <string> <string_view>
|
__cpp_lib_starts_ends_with 201711L <string> <string_view>
|
||||||
__cpp_lib_stdatomic_h 202011L <stdatomic.h>
|
__cpp_lib_stdatomic_h 202011L <stdatomic.h>
|
||||||
@ -182,11 +195,14 @@ __cpp_lib_string_resize_and_overwrite 202110L <string>
|
|||||||
__cpp_lib_string_udls 201304L <string>
|
__cpp_lib_string_udls 201304L <string>
|
||||||
__cpp_lib_string_view 201803L <string> <string_view>
|
__cpp_lib_string_view 201803L <string> <string_view>
|
||||||
201606L // C++17
|
201606L // C++17
|
||||||
|
__cpp_lib_submdspan 202306L <mdspan>
|
||||||
__cpp_lib_syncbuf 201803L <syncstream>
|
__cpp_lib_syncbuf 201803L <syncstream>
|
||||||
|
__cpp_lib_text_encoding 202306L <text_encoding>
|
||||||
__cpp_lib_three_way_comparison 201907L <compare>
|
__cpp_lib_three_way_comparison 201907L <compare>
|
||||||
__cpp_lib_to_address 201711L <memory>
|
__cpp_lib_to_address 201711L <memory>
|
||||||
__cpp_lib_to_array 201907L <array>
|
__cpp_lib_to_array 201907L <array>
|
||||||
__cpp_lib_to_chars 201611L <charconv>
|
__cpp_lib_to_chars 201611L <charconv>
|
||||||
|
__cpp_lib_to_string 202306L <string>
|
||||||
__cpp_lib_to_underlying 202102L <utility>
|
__cpp_lib_to_underlying 202102L <utility>
|
||||||
__cpp_lib_transformation_trait_aliases 201304L <type_traits>
|
__cpp_lib_transformation_trait_aliases 201304L <type_traits>
|
||||||
__cpp_lib_transparent_operators 201510L <functional> <memory>
|
__cpp_lib_transparent_operators 201510L <functional> <memory>
|
||||||
@ -201,6 +217,7 @@ __cpp_lib_unreachable 202202L <utility>
|
|||||||
__cpp_lib_unwrap_ref 201811L <functional>
|
__cpp_lib_unwrap_ref 201811L <functional>
|
||||||
__cpp_lib_variant 202102L <variant>
|
__cpp_lib_variant 202102L <variant>
|
||||||
__cpp_lib_void_t 201411L <type_traits>
|
__cpp_lib_void_t 201411L <type_traits>
|
||||||
|
__cpp_lib_within_lifetime 202306L <type_traits>
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -423,12 +440,29 @@ __cpp_lib_void_t 201411L <type_traits>
|
|||||||
# define __cpp_lib_stdatomic_h 202011L
|
# define __cpp_lib_stdatomic_h 202011L
|
||||||
# define __cpp_lib_string_contains 202011L
|
# define __cpp_lib_string_contains 202011L
|
||||||
# define __cpp_lib_string_resize_and_overwrite 202110L
|
# define __cpp_lib_string_resize_and_overwrite 202110L
|
||||||
|
// # define __cpp_lib_to_string 202306L
|
||||||
# define __cpp_lib_to_underlying 202102L
|
# define __cpp_lib_to_underlying 202102L
|
||||||
# define __cpp_lib_unreachable 202202L
|
# define __cpp_lib_unreachable 202202L
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if _LIBCPP_STD_VER >= 26
|
#if _LIBCPP_STD_VER >= 26
|
||||||
|
// # define __cpp_lib_associative_heterogeneous_insertion 202306L
|
||||||
|
# undef __cpp_lib_bind_back
|
||||||
|
// # define __cpp_lib_bind_back 202306L
|
||||||
|
# undef __cpp_lib_bind_front
|
||||||
|
# define __cpp_lib_bind_front 202306L
|
||||||
|
// # define __cpp_lib_bitset 202306L
|
||||||
|
// # define __cpp_lib_copyable_function 202306L
|
||||||
|
// # define __cpp_lib_fstream_native_handle 202306L
|
||||||
|
// # define __cpp_lib_function_ref 202306L
|
||||||
|
// # define __cpp_lib_hazard_pointer 202306L
|
||||||
|
// # define __cpp_lib_ratio 202306L
|
||||||
|
// # define __cpp_lib_rcu 202306L
|
||||||
|
// # define __cpp_lib_smart_ptr_owner_equality 202306L
|
||||||
|
// # define __cpp_lib_sstream_from_string_view 202306L
|
||||||
|
// # define __cpp_lib_submdspan 202306L
|
||||||
|
// # define __cpp_lib_text_encoding 202306L
|
||||||
|
// # define __cpp_lib_within_lifetime 202306L
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
@ -56,6 +56,7 @@ set(LIBCXX_SOURCES_MODULE_STD
|
|||||||
std/functional.cppm
|
std/functional.cppm
|
||||||
std/future.cppm
|
std/future.cppm
|
||||||
std/generator.cppm
|
std/generator.cppm
|
||||||
|
std/hazard_pointer.cppm
|
||||||
std/initializer_list.cppm
|
std/initializer_list.cppm
|
||||||
std/iomanip.cppm
|
std/iomanip.cppm
|
||||||
std/ios.cppm
|
std/ios.cppm
|
||||||
@ -83,6 +84,7 @@ set(LIBCXX_SOURCES_MODULE_STD
|
|||||||
std/random.cppm
|
std/random.cppm
|
||||||
std/ranges.cppm
|
std/ranges.cppm
|
||||||
std/ratio.cppm
|
std/ratio.cppm
|
||||||
|
std/rcu.cppm
|
||||||
std/regex.cppm
|
std/regex.cppm
|
||||||
std/scoped_allocator.cppm
|
std/scoped_allocator.cppm
|
||||||
std/semaphore.cppm
|
std/semaphore.cppm
|
||||||
@ -104,6 +106,7 @@ set(LIBCXX_SOURCES_MODULE_STD
|
|||||||
std/strstream.cppm
|
std/strstream.cppm
|
||||||
std/syncstream.cppm
|
std/syncstream.cppm
|
||||||
std/system_error.cppm
|
std/system_error.cppm
|
||||||
|
std/text_encoding.cppm
|
||||||
std/thread.cppm
|
std/thread.cppm
|
||||||
std/tuple.cppm
|
std/tuple.cppm
|
||||||
std/type_traits.cppm
|
std/type_traits.cppm
|
||||||
|
@ -61,6 +61,7 @@ export import :fstream;
|
|||||||
export import :functional;
|
export import :functional;
|
||||||
export import :future;
|
export import :future;
|
||||||
export import :generator;
|
export import :generator;
|
||||||
|
export import :hazard_pointer;
|
||||||
export import :initializer_list;
|
export import :initializer_list;
|
||||||
export import :iomanip;
|
export import :iomanip;
|
||||||
export import :ios;
|
export import :ios;
|
||||||
@ -86,6 +87,7 @@ export import :queue;
|
|||||||
export import :random;
|
export import :random;
|
||||||
export import :ranges;
|
export import :ranges;
|
||||||
export import :ratio;
|
export import :ratio;
|
||||||
|
export import :rcu;
|
||||||
export import :regex;
|
export import :regex;
|
||||||
export import :scoped_allocator;
|
export import :scoped_allocator;
|
||||||
export import :semaphore;
|
export import :semaphore;
|
||||||
@ -106,6 +108,7 @@ export import :string_view;
|
|||||||
export import :strstream;
|
export import :strstream;
|
||||||
export import :syncstream;
|
export import :syncstream;
|
||||||
export import :system_error;
|
export import :system_error;
|
||||||
|
export import :text_encoding;
|
||||||
export import :thread;
|
export import :thread;
|
||||||
export import :tuple;
|
export import :tuple;
|
||||||
export import :type_traits;
|
export import :type_traits;
|
||||||
|
30
libcxx/modules/std/hazard_pointer.cppm
Normal file
30
libcxx/modules/std/hazard_pointer.cppm
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
// -*- C++ -*-
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||||
|
// See https://llvm.org/LICENSE.txt for license information.
|
||||||
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
module;
|
||||||
|
#if __has_include(<hazard_pointer>)
|
||||||
|
# error "include this header unconditionally and uncomment the exported symbols"
|
||||||
|
# include <hazard_pointer>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
export module std:hazard_pointer;
|
||||||
|
export namespace std {
|
||||||
|
#if 0
|
||||||
|
# if _LIBCPP_STD_VER >= 23
|
||||||
|
// 4.1.3, class template hazard_pointer_obj_base
|
||||||
|
using std::hazard_pointer_obj_base;
|
||||||
|
// 4.1.4, class hazard_pointer
|
||||||
|
using std::hazard_pointer;
|
||||||
|
// 4.1.5, Construct non-empty hazard_pointer
|
||||||
|
using std::make_hazard_pointer;
|
||||||
|
// 4.1.6, Hazard pointer swap
|
||||||
|
using std::swap;
|
||||||
|
# endif // _LIBCPP_STD_VER >= 23
|
||||||
|
#endif
|
||||||
|
} // namespace std
|
29
libcxx/modules/std/rcu.cppm
Normal file
29
libcxx/modules/std/rcu.cppm
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
// -*- C++ -*-
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||||
|
// See https://llvm.org/LICENSE.txt for license information.
|
||||||
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
module;
|
||||||
|
#if __has_include(<rcu>)
|
||||||
|
# error "include this header unconditionally and uncomment the exported symbols"
|
||||||
|
# include <rcu>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
export module std:rcu;
|
||||||
|
export namespace std {
|
||||||
|
#if 0
|
||||||
|
# if _LIBCPP_STD_VER >= 23
|
||||||
|
// 2.2.3, class template rcu_obj_base using std::rcu_obj_base;
|
||||||
|
// 2.2.4, class rcu_domain
|
||||||
|
using std::rcu_domain;
|
||||||
|
using std::rcu_default_domain();
|
||||||
|
using std::rcu_barrier;
|
||||||
|
using std::rcu_retire;
|
||||||
|
using std::rcu_synchronize;
|
||||||
|
# endif // _LIBCPP_STD_VER >= 23
|
||||||
|
#endif
|
||||||
|
} // namespace std
|
26
libcxx/modules/std/text_encoding.cppm
Normal file
26
libcxx/modules/std/text_encoding.cppm
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
// -*- C++ -*-
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||||
|
// See https://llvm.org/LICENSE.txt for license information.
|
||||||
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
module;
|
||||||
|
#if __has_include(<text_encoding>)
|
||||||
|
# error "include this header unconditionally and uncomment the exported symbols"
|
||||||
|
# include <text_encoding>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
export module std:text_encoding;
|
||||||
|
export namespace std {
|
||||||
|
#if 0
|
||||||
|
# if _LIBCPP_STD_VER >= 23
|
||||||
|
using std::text_encoding;
|
||||||
|
|
||||||
|
// hash support
|
||||||
|
using std::hash;
|
||||||
|
# endif // _LIBCPP_STD_VER >= 23
|
||||||
|
#endif
|
||||||
|
} // namespace std
|
@ -16,6 +16,7 @@
|
|||||||
// Test the feature test macros defined by <bitset>
|
// Test the feature test macros defined by <bitset>
|
||||||
|
|
||||||
/* Constant Value
|
/* Constant Value
|
||||||
|
__cpp_lib_bitset 202306L [C++26]
|
||||||
__cpp_lib_constexpr_bitset 202207L [C++23]
|
__cpp_lib_constexpr_bitset 202207L [C++23]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -24,30 +25,50 @@
|
|||||||
|
|
||||||
#if TEST_STD_VER < 14
|
#if TEST_STD_VER < 14
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_bitset
|
||||||
|
# error "__cpp_lib_bitset should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifdef __cpp_lib_constexpr_bitset
|
# ifdef __cpp_lib_constexpr_bitset
|
||||||
# error "__cpp_lib_constexpr_bitset should not be defined before c++23"
|
# error "__cpp_lib_constexpr_bitset should not be defined before c++23"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#elif TEST_STD_VER == 14
|
#elif TEST_STD_VER == 14
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_bitset
|
||||||
|
# error "__cpp_lib_bitset should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifdef __cpp_lib_constexpr_bitset
|
# ifdef __cpp_lib_constexpr_bitset
|
||||||
# error "__cpp_lib_constexpr_bitset should not be defined before c++23"
|
# error "__cpp_lib_constexpr_bitset should not be defined before c++23"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#elif TEST_STD_VER == 17
|
#elif TEST_STD_VER == 17
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_bitset
|
||||||
|
# error "__cpp_lib_bitset should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifdef __cpp_lib_constexpr_bitset
|
# ifdef __cpp_lib_constexpr_bitset
|
||||||
# error "__cpp_lib_constexpr_bitset should not be defined before c++23"
|
# error "__cpp_lib_constexpr_bitset should not be defined before c++23"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#elif TEST_STD_VER == 20
|
#elif TEST_STD_VER == 20
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_bitset
|
||||||
|
# error "__cpp_lib_bitset should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifdef __cpp_lib_constexpr_bitset
|
# ifdef __cpp_lib_constexpr_bitset
|
||||||
# error "__cpp_lib_constexpr_bitset should not be defined before c++23"
|
# error "__cpp_lib_constexpr_bitset should not be defined before c++23"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#elif TEST_STD_VER == 23
|
#elif TEST_STD_VER == 23
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_bitset
|
||||||
|
# error "__cpp_lib_bitset should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifndef __cpp_lib_constexpr_bitset
|
# ifndef __cpp_lib_constexpr_bitset
|
||||||
# error "__cpp_lib_constexpr_bitset should be defined in c++23"
|
# error "__cpp_lib_constexpr_bitset should be defined in c++23"
|
||||||
# endif
|
# endif
|
||||||
@ -57,6 +78,19 @@
|
|||||||
|
|
||||||
#elif TEST_STD_VER > 23
|
#elif TEST_STD_VER > 23
|
||||||
|
|
||||||
|
# if !defined(_LIBCPP_VERSION)
|
||||||
|
# ifndef __cpp_lib_bitset
|
||||||
|
# error "__cpp_lib_bitset should be defined in c++26"
|
||||||
|
# endif
|
||||||
|
# if __cpp_lib_bitset != 202306L
|
||||||
|
# error "__cpp_lib_bitset should have the value 202306L in c++26"
|
||||||
|
# endif
|
||||||
|
# else // _LIBCPP_VERSION
|
||||||
|
# ifdef __cpp_lib_bitset
|
||||||
|
# error "__cpp_lib_bitset should not be defined because it is unimplemented in libc++!"
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifndef __cpp_lib_constexpr_bitset
|
# ifndef __cpp_lib_constexpr_bitset
|
||||||
# error "__cpp_lib_constexpr_bitset should be defined in c++26"
|
# error "__cpp_lib_constexpr_bitset should be defined in c++26"
|
||||||
# endif
|
# endif
|
||||||
|
@ -0,0 +1,73 @@
|
|||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||||
|
// See https://llvm.org/LICENSE.txt for license information.
|
||||||
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// WARNING: This test was generated by generate_feature_test_macro_components.py
|
||||||
|
// and should not be edited manually.
|
||||||
|
//
|
||||||
|
// clang-format off
|
||||||
|
|
||||||
|
// UNSUPPORTED: no-localization
|
||||||
|
|
||||||
|
// <fstream>
|
||||||
|
|
||||||
|
// Test the feature test macros defined by <fstream>
|
||||||
|
|
||||||
|
/* Constant Value
|
||||||
|
__cpp_lib_fstream_native_handle 202306L [C++26]
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <fstream>
|
||||||
|
#include "test_macros.h"
|
||||||
|
|
||||||
|
#if TEST_STD_VER < 14
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_fstream_native_handle
|
||||||
|
# error "__cpp_lib_fstream_native_handle should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#elif TEST_STD_VER == 14
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_fstream_native_handle
|
||||||
|
# error "__cpp_lib_fstream_native_handle should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#elif TEST_STD_VER == 17
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_fstream_native_handle
|
||||||
|
# error "__cpp_lib_fstream_native_handle should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#elif TEST_STD_VER == 20
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_fstream_native_handle
|
||||||
|
# error "__cpp_lib_fstream_native_handle should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#elif TEST_STD_VER == 23
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_fstream_native_handle
|
||||||
|
# error "__cpp_lib_fstream_native_handle should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#elif TEST_STD_VER > 23
|
||||||
|
|
||||||
|
# if !defined(_LIBCPP_VERSION)
|
||||||
|
# ifndef __cpp_lib_fstream_native_handle
|
||||||
|
# error "__cpp_lib_fstream_native_handle should be defined in c++26"
|
||||||
|
# endif
|
||||||
|
# if __cpp_lib_fstream_native_handle != 202306L
|
||||||
|
# error "__cpp_lib_fstream_native_handle should have the value 202306L in c++26"
|
||||||
|
# endif
|
||||||
|
# else // _LIBCPP_VERSION
|
||||||
|
# ifdef __cpp_lib_fstream_native_handle
|
||||||
|
# error "__cpp_lib_fstream_native_handle should not be defined because it is unimplemented in libc++!"
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif // TEST_STD_VER > 23
|
||||||
|
|
@ -17,9 +17,13 @@
|
|||||||
|
|
||||||
/* Constant Value
|
/* Constant Value
|
||||||
__cpp_lib_bind_back 202202L [C++23]
|
__cpp_lib_bind_back 202202L [C++23]
|
||||||
|
202306L [C++26]
|
||||||
__cpp_lib_bind_front 201907L [C++20]
|
__cpp_lib_bind_front 201907L [C++20]
|
||||||
|
202306L [C++26]
|
||||||
__cpp_lib_boyer_moore_searcher 201603L [C++17]
|
__cpp_lib_boyer_moore_searcher 201603L [C++17]
|
||||||
__cpp_lib_constexpr_functional 201907L [C++20]
|
__cpp_lib_constexpr_functional 201907L [C++20]
|
||||||
|
__cpp_lib_copyable_function 202306L [C++26]
|
||||||
|
__cpp_lib_function_ref 202306L [C++26]
|
||||||
__cpp_lib_invoke 201411L [C++17]
|
__cpp_lib_invoke 201411L [C++17]
|
||||||
__cpp_lib_invoke_r 202106L [C++23]
|
__cpp_lib_invoke_r 202106L [C++23]
|
||||||
__cpp_lib_move_only_function 202110L [C++23]
|
__cpp_lib_move_only_function 202110L [C++23]
|
||||||
@ -52,6 +56,14 @@
|
|||||||
# error "__cpp_lib_constexpr_functional should not be defined before c++20"
|
# error "__cpp_lib_constexpr_functional should not be defined before c++20"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_copyable_function
|
||||||
|
# error "__cpp_lib_copyable_function should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_function_ref
|
||||||
|
# error "__cpp_lib_function_ref should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifdef __cpp_lib_invoke
|
# ifdef __cpp_lib_invoke
|
||||||
# error "__cpp_lib_invoke should not be defined before c++17"
|
# error "__cpp_lib_invoke should not be defined before c++17"
|
||||||
# endif
|
# endif
|
||||||
@ -102,6 +114,14 @@
|
|||||||
# error "__cpp_lib_constexpr_functional should not be defined before c++20"
|
# error "__cpp_lib_constexpr_functional should not be defined before c++20"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_copyable_function
|
||||||
|
# error "__cpp_lib_copyable_function should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_function_ref
|
||||||
|
# error "__cpp_lib_function_ref should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifdef __cpp_lib_invoke
|
# ifdef __cpp_lib_invoke
|
||||||
# error "__cpp_lib_invoke should not be defined before c++17"
|
# error "__cpp_lib_invoke should not be defined before c++17"
|
||||||
# endif
|
# endif
|
||||||
@ -161,6 +181,14 @@
|
|||||||
# error "__cpp_lib_constexpr_functional should not be defined before c++20"
|
# error "__cpp_lib_constexpr_functional should not be defined before c++20"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_copyable_function
|
||||||
|
# error "__cpp_lib_copyable_function should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_function_ref
|
||||||
|
# error "__cpp_lib_function_ref should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifndef __cpp_lib_invoke
|
# ifndef __cpp_lib_invoke
|
||||||
# error "__cpp_lib_invoke should be defined in c++17"
|
# error "__cpp_lib_invoke should be defined in c++17"
|
||||||
# endif
|
# endif
|
||||||
@ -232,6 +260,14 @@
|
|||||||
# error "__cpp_lib_constexpr_functional should have the value 201907L in c++20"
|
# error "__cpp_lib_constexpr_functional should have the value 201907L in c++20"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_copyable_function
|
||||||
|
# error "__cpp_lib_copyable_function should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_function_ref
|
||||||
|
# error "__cpp_lib_function_ref should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifndef __cpp_lib_invoke
|
# ifndef __cpp_lib_invoke
|
||||||
# error "__cpp_lib_invoke should be defined in c++20"
|
# error "__cpp_lib_invoke should be defined in c++20"
|
||||||
# endif
|
# endif
|
||||||
@ -318,6 +354,14 @@
|
|||||||
# error "__cpp_lib_constexpr_functional should have the value 201907L in c++23"
|
# error "__cpp_lib_constexpr_functional should have the value 201907L in c++23"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_copyable_function
|
||||||
|
# error "__cpp_lib_copyable_function should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_function_ref
|
||||||
|
# error "__cpp_lib_function_ref should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifndef __cpp_lib_invoke
|
# ifndef __cpp_lib_invoke
|
||||||
# error "__cpp_lib_invoke should be defined in c++23"
|
# error "__cpp_lib_invoke should be defined in c++23"
|
||||||
# endif
|
# endif
|
||||||
@ -386,8 +430,8 @@
|
|||||||
# ifndef __cpp_lib_bind_back
|
# ifndef __cpp_lib_bind_back
|
||||||
# error "__cpp_lib_bind_back should be defined in c++26"
|
# error "__cpp_lib_bind_back should be defined in c++26"
|
||||||
# endif
|
# endif
|
||||||
# if __cpp_lib_bind_back != 202202L
|
# if __cpp_lib_bind_back != 202306L
|
||||||
# error "__cpp_lib_bind_back should have the value 202202L in c++26"
|
# error "__cpp_lib_bind_back should have the value 202306L in c++26"
|
||||||
# endif
|
# endif
|
||||||
# else // _LIBCPP_VERSION
|
# else // _LIBCPP_VERSION
|
||||||
# ifdef __cpp_lib_bind_back
|
# ifdef __cpp_lib_bind_back
|
||||||
@ -398,8 +442,8 @@
|
|||||||
# ifndef __cpp_lib_bind_front
|
# ifndef __cpp_lib_bind_front
|
||||||
# error "__cpp_lib_bind_front should be defined in c++26"
|
# error "__cpp_lib_bind_front should be defined in c++26"
|
||||||
# endif
|
# endif
|
||||||
# if __cpp_lib_bind_front != 201907L
|
# if __cpp_lib_bind_front != 202306L
|
||||||
# error "__cpp_lib_bind_front should have the value 201907L in c++26"
|
# error "__cpp_lib_bind_front should have the value 202306L in c++26"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifndef __cpp_lib_boyer_moore_searcher
|
# ifndef __cpp_lib_boyer_moore_searcher
|
||||||
@ -416,6 +460,32 @@
|
|||||||
# error "__cpp_lib_constexpr_functional should have the value 201907L in c++26"
|
# error "__cpp_lib_constexpr_functional should have the value 201907L in c++26"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# if !defined(_LIBCPP_VERSION)
|
||||||
|
# ifndef __cpp_lib_copyable_function
|
||||||
|
# error "__cpp_lib_copyable_function should be defined in c++26"
|
||||||
|
# endif
|
||||||
|
# if __cpp_lib_copyable_function != 202306L
|
||||||
|
# error "__cpp_lib_copyable_function should have the value 202306L in c++26"
|
||||||
|
# endif
|
||||||
|
# else // _LIBCPP_VERSION
|
||||||
|
# ifdef __cpp_lib_copyable_function
|
||||||
|
# error "__cpp_lib_copyable_function should not be defined because it is unimplemented in libc++!"
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# if !defined(_LIBCPP_VERSION)
|
||||||
|
# ifndef __cpp_lib_function_ref
|
||||||
|
# error "__cpp_lib_function_ref should be defined in c++26"
|
||||||
|
# endif
|
||||||
|
# if __cpp_lib_function_ref != 202306L
|
||||||
|
# error "__cpp_lib_function_ref should have the value 202306L in c++26"
|
||||||
|
# endif
|
||||||
|
# else // _LIBCPP_VERSION
|
||||||
|
# ifdef __cpp_lib_function_ref
|
||||||
|
# error "__cpp_lib_function_ref should not be defined because it is unimplemented in libc++!"
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifndef __cpp_lib_invoke
|
# ifndef __cpp_lib_invoke
|
||||||
# error "__cpp_lib_invoke should be defined in c++26"
|
# error "__cpp_lib_invoke should be defined in c++26"
|
||||||
# endif
|
# endif
|
||||||
|
@ -15,15 +15,16 @@
|
|||||||
|
|
||||||
// Test the feature test macros defined by <map>
|
// Test the feature test macros defined by <map>
|
||||||
|
|
||||||
/* Constant Value
|
/* Constant Value
|
||||||
__cpp_lib_allocator_traits_is_always_equal 201411L [C++17]
|
__cpp_lib_allocator_traits_is_always_equal 201411L [C++17]
|
||||||
__cpp_lib_associative_heterogeneous_erasure 202110L [C++23]
|
__cpp_lib_associative_heterogeneous_erasure 202110L [C++23]
|
||||||
__cpp_lib_erase_if 202002L [C++20]
|
__cpp_lib_associative_heterogeneous_insertion 202306L [C++26]
|
||||||
__cpp_lib_generic_associative_lookup 201304L [C++14]
|
__cpp_lib_erase_if 202002L [C++20]
|
||||||
__cpp_lib_map_try_emplace 201411L [C++17]
|
__cpp_lib_generic_associative_lookup 201304L [C++14]
|
||||||
__cpp_lib_node_extract 201606L [C++17]
|
__cpp_lib_map_try_emplace 201411L [C++17]
|
||||||
__cpp_lib_nonmember_container_access 201411L [C++17]
|
__cpp_lib_node_extract 201606L [C++17]
|
||||||
__cpp_lib_ranges_to_container 202202L [C++23]
|
__cpp_lib_nonmember_container_access 201411L [C++17]
|
||||||
|
__cpp_lib_ranges_to_container 202202L [C++23]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
@ -39,6 +40,10 @@
|
|||||||
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifdef __cpp_lib_erase_if
|
# ifdef __cpp_lib_erase_if
|
||||||
# error "__cpp_lib_erase_if should not be defined before c++20"
|
# error "__cpp_lib_erase_if should not be defined before c++20"
|
||||||
# endif
|
# endif
|
||||||
@ -73,6 +78,10 @@
|
|||||||
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifdef __cpp_lib_erase_if
|
# ifdef __cpp_lib_erase_if
|
||||||
# error "__cpp_lib_erase_if should not be defined before c++20"
|
# error "__cpp_lib_erase_if should not be defined before c++20"
|
||||||
# endif
|
# endif
|
||||||
@ -113,6 +122,10 @@
|
|||||||
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifdef __cpp_lib_erase_if
|
# ifdef __cpp_lib_erase_if
|
||||||
# error "__cpp_lib_erase_if should not be defined before c++20"
|
# error "__cpp_lib_erase_if should not be defined before c++20"
|
||||||
# endif
|
# endif
|
||||||
@ -162,6 +175,10 @@
|
|||||||
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifndef __cpp_lib_erase_if
|
# ifndef __cpp_lib_erase_if
|
||||||
# error "__cpp_lib_erase_if should be defined in c++20"
|
# error "__cpp_lib_erase_if should be defined in c++20"
|
||||||
# endif
|
# endif
|
||||||
@ -223,6 +240,10 @@
|
|||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifndef __cpp_lib_erase_if
|
# ifndef __cpp_lib_erase_if
|
||||||
# error "__cpp_lib_erase_if should be defined in c++23"
|
# error "__cpp_lib_erase_if should be defined in c++23"
|
||||||
# endif
|
# endif
|
||||||
@ -293,6 +314,19 @@
|
|||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# if !defined(_LIBCPP_VERSION)
|
||||||
|
# ifndef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should be defined in c++26"
|
||||||
|
# endif
|
||||||
|
# if __cpp_lib_associative_heterogeneous_insertion != 202306L
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should have the value 202306L in c++26"
|
||||||
|
# endif
|
||||||
|
# else // _LIBCPP_VERSION
|
||||||
|
# ifdef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined because it is unimplemented in libc++!"
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifndef __cpp_lib_erase_if
|
# ifndef __cpp_lib_erase_if
|
||||||
# error "__cpp_lib_erase_if should be defined in c++26"
|
# error "__cpp_lib_erase_if should be defined in c++26"
|
||||||
# endif
|
# endif
|
||||||
|
@ -15,8 +15,9 @@
|
|||||||
|
|
||||||
// Test the feature test macros defined by <mdspan>
|
// Test the feature test macros defined by <mdspan>
|
||||||
|
|
||||||
/* Constant Value
|
/* Constant Value
|
||||||
__cpp_lib_mdspan 202207L [C++23]
|
__cpp_lib_mdspan 202207L [C++23]
|
||||||
|
__cpp_lib_submdspan 202306L [C++26]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <mdspan>
|
#include <mdspan>
|
||||||
@ -28,24 +29,40 @@
|
|||||||
# error "__cpp_lib_mdspan should not be defined before c++23"
|
# error "__cpp_lib_mdspan should not be defined before c++23"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_submdspan
|
||||||
|
# error "__cpp_lib_submdspan should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
#elif TEST_STD_VER == 14
|
#elif TEST_STD_VER == 14
|
||||||
|
|
||||||
# ifdef __cpp_lib_mdspan
|
# ifdef __cpp_lib_mdspan
|
||||||
# error "__cpp_lib_mdspan should not be defined before c++23"
|
# error "__cpp_lib_mdspan should not be defined before c++23"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_submdspan
|
||||||
|
# error "__cpp_lib_submdspan should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
#elif TEST_STD_VER == 17
|
#elif TEST_STD_VER == 17
|
||||||
|
|
||||||
# ifdef __cpp_lib_mdspan
|
# ifdef __cpp_lib_mdspan
|
||||||
# error "__cpp_lib_mdspan should not be defined before c++23"
|
# error "__cpp_lib_mdspan should not be defined before c++23"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_submdspan
|
||||||
|
# error "__cpp_lib_submdspan should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
#elif TEST_STD_VER == 20
|
#elif TEST_STD_VER == 20
|
||||||
|
|
||||||
# ifdef __cpp_lib_mdspan
|
# ifdef __cpp_lib_mdspan
|
||||||
# error "__cpp_lib_mdspan should not be defined before c++23"
|
# error "__cpp_lib_mdspan should not be defined before c++23"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_submdspan
|
||||||
|
# error "__cpp_lib_submdspan should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
#elif TEST_STD_VER == 23
|
#elif TEST_STD_VER == 23
|
||||||
|
|
||||||
# if !defined(_LIBCPP_VERSION)
|
# if !defined(_LIBCPP_VERSION)
|
||||||
@ -61,6 +78,10 @@
|
|||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_submdspan
|
||||||
|
# error "__cpp_lib_submdspan should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
#elif TEST_STD_VER > 23
|
#elif TEST_STD_VER > 23
|
||||||
|
|
||||||
# if !defined(_LIBCPP_VERSION)
|
# if !defined(_LIBCPP_VERSION)
|
||||||
@ -76,5 +97,18 @@
|
|||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# if !defined(_LIBCPP_VERSION)
|
||||||
|
# ifndef __cpp_lib_submdspan
|
||||||
|
# error "__cpp_lib_submdspan should be defined in c++26"
|
||||||
|
# endif
|
||||||
|
# if __cpp_lib_submdspan != 202306L
|
||||||
|
# error "__cpp_lib_submdspan should have the value 202306L in c++26"
|
||||||
|
# endif
|
||||||
|
# else // _LIBCPP_VERSION
|
||||||
|
# ifdef __cpp_lib_submdspan
|
||||||
|
# error "__cpp_lib_submdspan should not be defined because it is unimplemented in libc++!"
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
#endif // TEST_STD_VER > 23
|
#endif // TEST_STD_VER > 23
|
||||||
|
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
201707L [C++20]
|
201707L [C++20]
|
||||||
__cpp_lib_shared_ptr_weak_type 201606L [C++17]
|
__cpp_lib_shared_ptr_weak_type 201606L [C++17]
|
||||||
__cpp_lib_smart_ptr_for_overwrite 202002L [C++20]
|
__cpp_lib_smart_ptr_for_overwrite 202002L [C++20]
|
||||||
|
__cpp_lib_smart_ptr_owner_equality 202306L [C++26]
|
||||||
__cpp_lib_to_address 201711L [C++20]
|
__cpp_lib_to_address 201711L [C++20]
|
||||||
__cpp_lib_transparent_operators 201210L [C++14]
|
__cpp_lib_transparent_operators 201210L [C++14]
|
||||||
201510L [C++17]
|
201510L [C++17]
|
||||||
@ -103,6 +104,10 @@
|
|||||||
# error "__cpp_lib_smart_ptr_for_overwrite should not be defined before c++20"
|
# error "__cpp_lib_smart_ptr_for_overwrite should not be defined before c++20"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_smart_ptr_owner_equality
|
||||||
|
# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifdef __cpp_lib_to_address
|
# ifdef __cpp_lib_to_address
|
||||||
# error "__cpp_lib_to_address should not be defined before c++20"
|
# error "__cpp_lib_to_address should not be defined before c++20"
|
||||||
# endif
|
# endif
|
||||||
@ -176,6 +181,10 @@
|
|||||||
# error "__cpp_lib_smart_ptr_for_overwrite should not be defined before c++20"
|
# error "__cpp_lib_smart_ptr_for_overwrite should not be defined before c++20"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_smart_ptr_owner_equality
|
||||||
|
# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifdef __cpp_lib_to_address
|
# ifdef __cpp_lib_to_address
|
||||||
# error "__cpp_lib_to_address should not be defined before c++20"
|
# error "__cpp_lib_to_address should not be defined before c++20"
|
||||||
# endif
|
# endif
|
||||||
@ -270,6 +279,10 @@
|
|||||||
# error "__cpp_lib_smart_ptr_for_overwrite should not be defined before c++20"
|
# error "__cpp_lib_smart_ptr_for_overwrite should not be defined before c++20"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_smart_ptr_owner_equality
|
||||||
|
# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifdef __cpp_lib_to_address
|
# ifdef __cpp_lib_to_address
|
||||||
# error "__cpp_lib_to_address should not be defined before c++20"
|
# error "__cpp_lib_to_address should not be defined before c++20"
|
||||||
# endif
|
# endif
|
||||||
@ -388,6 +401,10 @@
|
|||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_smart_ptr_owner_equality
|
||||||
|
# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifndef __cpp_lib_to_address
|
# ifndef __cpp_lib_to_address
|
||||||
# error "__cpp_lib_to_address should be defined in c++20"
|
# error "__cpp_lib_to_address should be defined in c++20"
|
||||||
# endif
|
# endif
|
||||||
@ -521,6 +538,10 @@
|
|||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_smart_ptr_owner_equality
|
||||||
|
# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifndef __cpp_lib_to_address
|
# ifndef __cpp_lib_to_address
|
||||||
# error "__cpp_lib_to_address should be defined in c++23"
|
# error "__cpp_lib_to_address should be defined in c++23"
|
||||||
# endif
|
# endif
|
||||||
@ -654,6 +675,19 @@
|
|||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# if !defined(_LIBCPP_VERSION)
|
||||||
|
# ifndef __cpp_lib_smart_ptr_owner_equality
|
||||||
|
# error "__cpp_lib_smart_ptr_owner_equality should be defined in c++26"
|
||||||
|
# endif
|
||||||
|
# if __cpp_lib_smart_ptr_owner_equality != 202306L
|
||||||
|
# error "__cpp_lib_smart_ptr_owner_equality should have the value 202306L in c++26"
|
||||||
|
# endif
|
||||||
|
# else // _LIBCPP_VERSION
|
||||||
|
# ifdef __cpp_lib_smart_ptr_owner_equality
|
||||||
|
# error "__cpp_lib_smart_ptr_owner_equality should not be defined because it is unimplemented in libc++!"
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifndef __cpp_lib_to_address
|
# ifndef __cpp_lib_to_address
|
||||||
# error "__cpp_lib_to_address should be defined in c++26"
|
# error "__cpp_lib_to_address should be defined in c++26"
|
||||||
# endif
|
# endif
|
||||||
|
@ -0,0 +1,71 @@
|
|||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||||
|
// See https://llvm.org/LICENSE.txt for license information.
|
||||||
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// WARNING: This test was generated by generate_feature_test_macro_components.py
|
||||||
|
// and should not be edited manually.
|
||||||
|
//
|
||||||
|
// clang-format off
|
||||||
|
|
||||||
|
// <ratio>
|
||||||
|
|
||||||
|
// Test the feature test macros defined by <ratio>
|
||||||
|
|
||||||
|
/* Constant Value
|
||||||
|
__cpp_lib_ratio 202306L [C++26]
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <ratio>
|
||||||
|
#include "test_macros.h"
|
||||||
|
|
||||||
|
#if TEST_STD_VER < 14
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_ratio
|
||||||
|
# error "__cpp_lib_ratio should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#elif TEST_STD_VER == 14
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_ratio
|
||||||
|
# error "__cpp_lib_ratio should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#elif TEST_STD_VER == 17
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_ratio
|
||||||
|
# error "__cpp_lib_ratio should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#elif TEST_STD_VER == 20
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_ratio
|
||||||
|
# error "__cpp_lib_ratio should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#elif TEST_STD_VER == 23
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_ratio
|
||||||
|
# error "__cpp_lib_ratio should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#elif TEST_STD_VER > 23
|
||||||
|
|
||||||
|
# if !defined(_LIBCPP_VERSION)
|
||||||
|
# ifndef __cpp_lib_ratio
|
||||||
|
# error "__cpp_lib_ratio should be defined in c++26"
|
||||||
|
# endif
|
||||||
|
# if __cpp_lib_ratio != 202306L
|
||||||
|
# error "__cpp_lib_ratio should have the value 202306L in c++26"
|
||||||
|
# endif
|
||||||
|
# else // _LIBCPP_VERSION
|
||||||
|
# ifdef __cpp_lib_ratio
|
||||||
|
# error "__cpp_lib_ratio should not be defined because it is unimplemented in libc++!"
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif // TEST_STD_VER > 23
|
||||||
|
|
@ -15,14 +15,15 @@
|
|||||||
|
|
||||||
// Test the feature test macros defined by <set>
|
// Test the feature test macros defined by <set>
|
||||||
|
|
||||||
/* Constant Value
|
/* Constant Value
|
||||||
__cpp_lib_allocator_traits_is_always_equal 201411L [C++17]
|
__cpp_lib_allocator_traits_is_always_equal 201411L [C++17]
|
||||||
__cpp_lib_associative_heterogeneous_erasure 202110L [C++23]
|
__cpp_lib_associative_heterogeneous_erasure 202110L [C++23]
|
||||||
__cpp_lib_erase_if 202002L [C++20]
|
__cpp_lib_associative_heterogeneous_insertion 202306L [C++26]
|
||||||
__cpp_lib_generic_associative_lookup 201304L [C++14]
|
__cpp_lib_erase_if 202002L [C++20]
|
||||||
__cpp_lib_node_extract 201606L [C++17]
|
__cpp_lib_generic_associative_lookup 201304L [C++14]
|
||||||
__cpp_lib_nonmember_container_access 201411L [C++17]
|
__cpp_lib_node_extract 201606L [C++17]
|
||||||
__cpp_lib_ranges_to_container 202202L [C++23]
|
__cpp_lib_nonmember_container_access 201411L [C++17]
|
||||||
|
__cpp_lib_ranges_to_container 202202L [C++23]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <set>
|
#include <set>
|
||||||
@ -38,6 +39,10 @@
|
|||||||
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifdef __cpp_lib_erase_if
|
# ifdef __cpp_lib_erase_if
|
||||||
# error "__cpp_lib_erase_if should not be defined before c++20"
|
# error "__cpp_lib_erase_if should not be defined before c++20"
|
||||||
# endif
|
# endif
|
||||||
@ -68,6 +73,10 @@
|
|||||||
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifdef __cpp_lib_erase_if
|
# ifdef __cpp_lib_erase_if
|
||||||
# error "__cpp_lib_erase_if should not be defined before c++20"
|
# error "__cpp_lib_erase_if should not be defined before c++20"
|
||||||
# endif
|
# endif
|
||||||
@ -104,6 +113,10 @@
|
|||||||
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifdef __cpp_lib_erase_if
|
# ifdef __cpp_lib_erase_if
|
||||||
# error "__cpp_lib_erase_if should not be defined before c++20"
|
# error "__cpp_lib_erase_if should not be defined before c++20"
|
||||||
# endif
|
# endif
|
||||||
@ -146,6 +159,10 @@
|
|||||||
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifndef __cpp_lib_erase_if
|
# ifndef __cpp_lib_erase_if
|
||||||
# error "__cpp_lib_erase_if should be defined in c++20"
|
# error "__cpp_lib_erase_if should be defined in c++20"
|
||||||
# endif
|
# endif
|
||||||
@ -200,6 +217,10 @@
|
|||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifndef __cpp_lib_erase_if
|
# ifndef __cpp_lib_erase_if
|
||||||
# error "__cpp_lib_erase_if should be defined in c++23"
|
# error "__cpp_lib_erase_if should be defined in c++23"
|
||||||
# endif
|
# endif
|
||||||
@ -263,6 +284,19 @@
|
|||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# if !defined(_LIBCPP_VERSION)
|
||||||
|
# ifndef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should be defined in c++26"
|
||||||
|
# endif
|
||||||
|
# if __cpp_lib_associative_heterogeneous_insertion != 202306L
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should have the value 202306L in c++26"
|
||||||
|
# endif
|
||||||
|
# else // _LIBCPP_VERSION
|
||||||
|
# ifdef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined because it is unimplemented in libc++!"
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifndef __cpp_lib_erase_if
|
# ifndef __cpp_lib_erase_if
|
||||||
# error "__cpp_lib_erase_if should be defined in c++26"
|
# error "__cpp_lib_erase_if should be defined in c++26"
|
||||||
# endif
|
# endif
|
||||||
|
@ -0,0 +1,73 @@
|
|||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||||
|
// See https://llvm.org/LICENSE.txt for license information.
|
||||||
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// WARNING: This test was generated by generate_feature_test_macro_components.py
|
||||||
|
// and should not be edited manually.
|
||||||
|
//
|
||||||
|
// clang-format off
|
||||||
|
|
||||||
|
// UNSUPPORTED: no-localization
|
||||||
|
|
||||||
|
// <sstream>
|
||||||
|
|
||||||
|
// Test the feature test macros defined by <sstream>
|
||||||
|
|
||||||
|
/* Constant Value
|
||||||
|
__cpp_lib_sstream_from_string_view 202306L [C++26]
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <sstream>
|
||||||
|
#include "test_macros.h"
|
||||||
|
|
||||||
|
#if TEST_STD_VER < 14
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_sstream_from_string_view
|
||||||
|
# error "__cpp_lib_sstream_from_string_view should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#elif TEST_STD_VER == 14
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_sstream_from_string_view
|
||||||
|
# error "__cpp_lib_sstream_from_string_view should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#elif TEST_STD_VER == 17
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_sstream_from_string_view
|
||||||
|
# error "__cpp_lib_sstream_from_string_view should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#elif TEST_STD_VER == 20
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_sstream_from_string_view
|
||||||
|
# error "__cpp_lib_sstream_from_string_view should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#elif TEST_STD_VER == 23
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_sstream_from_string_view
|
||||||
|
# error "__cpp_lib_sstream_from_string_view should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#elif TEST_STD_VER > 23
|
||||||
|
|
||||||
|
# if !defined(_LIBCPP_VERSION)
|
||||||
|
# ifndef __cpp_lib_sstream_from_string_view
|
||||||
|
# error "__cpp_lib_sstream_from_string_view should be defined in c++26"
|
||||||
|
# endif
|
||||||
|
# if __cpp_lib_sstream_from_string_view != 202306L
|
||||||
|
# error "__cpp_lib_sstream_from_string_view should have the value 202306L in c++26"
|
||||||
|
# endif
|
||||||
|
# else // _LIBCPP_VERSION
|
||||||
|
# ifdef __cpp_lib_sstream_from_string_view
|
||||||
|
# error "__cpp_lib_sstream_from_string_view should not be defined because it is unimplemented in libc++!"
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif // TEST_STD_VER > 23
|
||||||
|
|
@ -28,6 +28,7 @@
|
|||||||
__cpp_lib_string_udls 201304L [C++14]
|
__cpp_lib_string_udls 201304L [C++14]
|
||||||
__cpp_lib_string_view 201606L [C++17]
|
__cpp_lib_string_view 201606L [C++17]
|
||||||
201803L [C++20]
|
201803L [C++20]
|
||||||
|
__cpp_lib_to_string 202306L [C++23]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
@ -79,6 +80,10 @@
|
|||||||
# error "__cpp_lib_string_view should not be defined before c++17"
|
# error "__cpp_lib_string_view should not be defined before c++17"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_to_string
|
||||||
|
# error "__cpp_lib_to_string should not be defined before c++23"
|
||||||
|
# endif
|
||||||
|
|
||||||
#elif TEST_STD_VER == 14
|
#elif TEST_STD_VER == 14
|
||||||
|
|
||||||
# ifdef __cpp_lib_allocator_traits_is_always_equal
|
# ifdef __cpp_lib_allocator_traits_is_always_equal
|
||||||
@ -128,6 +133,10 @@
|
|||||||
# error "__cpp_lib_string_view should not be defined before c++17"
|
# error "__cpp_lib_string_view should not be defined before c++17"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_to_string
|
||||||
|
# error "__cpp_lib_to_string should not be defined before c++23"
|
||||||
|
# endif
|
||||||
|
|
||||||
#elif TEST_STD_VER == 17
|
#elif TEST_STD_VER == 17
|
||||||
|
|
||||||
# ifndef __cpp_lib_allocator_traits_is_always_equal
|
# ifndef __cpp_lib_allocator_traits_is_always_equal
|
||||||
@ -186,6 +195,10 @@
|
|||||||
# error "__cpp_lib_string_view should have the value 201606L in c++17"
|
# error "__cpp_lib_string_view should have the value 201606L in c++17"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_to_string
|
||||||
|
# error "__cpp_lib_to_string should not be defined before c++23"
|
||||||
|
# endif
|
||||||
|
|
||||||
#elif TEST_STD_VER == 20
|
#elif TEST_STD_VER == 20
|
||||||
|
|
||||||
# ifndef __cpp_lib_allocator_traits_is_always_equal
|
# ifndef __cpp_lib_allocator_traits_is_always_equal
|
||||||
@ -262,6 +275,10 @@
|
|||||||
# error "__cpp_lib_string_view should have the value 201803L in c++20"
|
# error "__cpp_lib_string_view should have the value 201803L in c++20"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_to_string
|
||||||
|
# error "__cpp_lib_to_string should not be defined before c++23"
|
||||||
|
# endif
|
||||||
|
|
||||||
#elif TEST_STD_VER == 23
|
#elif TEST_STD_VER == 23
|
||||||
|
|
||||||
# ifndef __cpp_lib_allocator_traits_is_always_equal
|
# ifndef __cpp_lib_allocator_traits_is_always_equal
|
||||||
@ -353,6 +370,19 @@
|
|||||||
# error "__cpp_lib_string_view should have the value 201803L in c++23"
|
# error "__cpp_lib_string_view should have the value 201803L in c++23"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# if !defined(_LIBCPP_VERSION)
|
||||||
|
# ifndef __cpp_lib_to_string
|
||||||
|
# error "__cpp_lib_to_string should be defined in c++23"
|
||||||
|
# endif
|
||||||
|
# if __cpp_lib_to_string != 202306L
|
||||||
|
# error "__cpp_lib_to_string should have the value 202306L in c++23"
|
||||||
|
# endif
|
||||||
|
# else // _LIBCPP_VERSION
|
||||||
|
# ifdef __cpp_lib_to_string
|
||||||
|
# error "__cpp_lib_to_string should not be defined because it is unimplemented in libc++!"
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
#elif TEST_STD_VER > 23
|
#elif TEST_STD_VER > 23
|
||||||
|
|
||||||
# ifndef __cpp_lib_allocator_traits_is_always_equal
|
# ifndef __cpp_lib_allocator_traits_is_always_equal
|
||||||
@ -444,5 +474,18 @@
|
|||||||
# error "__cpp_lib_string_view should have the value 201803L in c++26"
|
# error "__cpp_lib_string_view should have the value 201803L in c++26"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# if !defined(_LIBCPP_VERSION)
|
||||||
|
# ifndef __cpp_lib_to_string
|
||||||
|
# error "__cpp_lib_to_string should be defined in c++26"
|
||||||
|
# endif
|
||||||
|
# if __cpp_lib_to_string != 202306L
|
||||||
|
# error "__cpp_lib_to_string should have the value 202306L in c++26"
|
||||||
|
# endif
|
||||||
|
# else // _LIBCPP_VERSION
|
||||||
|
# ifdef __cpp_lib_to_string
|
||||||
|
# error "__cpp_lib_to_string should not be defined because it is unimplemented in libc++!"
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
#endif // TEST_STD_VER > 23
|
#endif // TEST_STD_VER > 23
|
||||||
|
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
__cpp_lib_type_identity 201806L [C++20]
|
__cpp_lib_type_identity 201806L [C++20]
|
||||||
__cpp_lib_type_trait_variable_templates 201510L [C++17]
|
__cpp_lib_type_trait_variable_templates 201510L [C++17]
|
||||||
__cpp_lib_void_t 201411L [C++17]
|
__cpp_lib_void_t 201411L [C++17]
|
||||||
|
__cpp_lib_within_lifetime 202306L [C++26]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
@ -133,6 +134,10 @@
|
|||||||
# error "__cpp_lib_void_t should not be defined before c++17"
|
# error "__cpp_lib_void_t should not be defined before c++17"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_within_lifetime
|
||||||
|
# error "__cpp_lib_within_lifetime should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
#elif TEST_STD_VER == 14
|
#elif TEST_STD_VER == 14
|
||||||
|
|
||||||
# ifdef __cpp_lib_bool_constant
|
# ifdef __cpp_lib_bool_constant
|
||||||
@ -238,6 +243,10 @@
|
|||||||
# error "__cpp_lib_void_t should not be defined before c++17"
|
# error "__cpp_lib_void_t should not be defined before c++17"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_within_lifetime
|
||||||
|
# error "__cpp_lib_within_lifetime should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
#elif TEST_STD_VER == 17
|
#elif TEST_STD_VER == 17
|
||||||
|
|
||||||
# ifndef __cpp_lib_bool_constant
|
# ifndef __cpp_lib_bool_constant
|
||||||
@ -367,6 +376,10 @@
|
|||||||
# error "__cpp_lib_void_t should have the value 201411L in c++17"
|
# error "__cpp_lib_void_t should have the value 201411L in c++17"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_within_lifetime
|
||||||
|
# error "__cpp_lib_within_lifetime should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
#elif TEST_STD_VER == 20
|
#elif TEST_STD_VER == 20
|
||||||
|
|
||||||
# ifndef __cpp_lib_bool_constant
|
# ifndef __cpp_lib_bool_constant
|
||||||
@ -529,6 +542,10 @@
|
|||||||
# error "__cpp_lib_void_t should have the value 201411L in c++20"
|
# error "__cpp_lib_void_t should have the value 201411L in c++20"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_within_lifetime
|
||||||
|
# error "__cpp_lib_within_lifetime should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
#elif TEST_STD_VER == 23
|
#elif TEST_STD_VER == 23
|
||||||
|
|
||||||
# ifndef __cpp_lib_bool_constant
|
# ifndef __cpp_lib_bool_constant
|
||||||
@ -703,6 +720,10 @@
|
|||||||
# error "__cpp_lib_void_t should have the value 201411L in c++23"
|
# error "__cpp_lib_void_t should have the value 201411L in c++23"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_within_lifetime
|
||||||
|
# error "__cpp_lib_within_lifetime should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
#elif TEST_STD_VER > 23
|
#elif TEST_STD_VER > 23
|
||||||
|
|
||||||
# ifndef __cpp_lib_bool_constant
|
# ifndef __cpp_lib_bool_constant
|
||||||
@ -877,5 +898,18 @@
|
|||||||
# error "__cpp_lib_void_t should have the value 201411L in c++26"
|
# error "__cpp_lib_void_t should have the value 201411L in c++26"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# if !defined(_LIBCPP_VERSION)
|
||||||
|
# ifndef __cpp_lib_within_lifetime
|
||||||
|
# error "__cpp_lib_within_lifetime should be defined in c++26"
|
||||||
|
# endif
|
||||||
|
# if __cpp_lib_within_lifetime != 202306L
|
||||||
|
# error "__cpp_lib_within_lifetime should have the value 202306L in c++26"
|
||||||
|
# endif
|
||||||
|
# else // _LIBCPP_VERSION
|
||||||
|
# ifdef __cpp_lib_within_lifetime
|
||||||
|
# error "__cpp_lib_within_lifetime should not be defined because it is unimplemented in libc++!"
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
#endif // TEST_STD_VER > 23
|
#endif // TEST_STD_VER > 23
|
||||||
|
|
||||||
|
@ -15,15 +15,16 @@
|
|||||||
|
|
||||||
// Test the feature test macros defined by <unordered_map>
|
// Test the feature test macros defined by <unordered_map>
|
||||||
|
|
||||||
/* Constant Value
|
/* Constant Value
|
||||||
__cpp_lib_allocator_traits_is_always_equal 201411L [C++17]
|
__cpp_lib_allocator_traits_is_always_equal 201411L [C++17]
|
||||||
__cpp_lib_associative_heterogeneous_erasure 202110L [C++23]
|
__cpp_lib_associative_heterogeneous_erasure 202110L [C++23]
|
||||||
__cpp_lib_erase_if 202002L [C++20]
|
__cpp_lib_associative_heterogeneous_insertion 202306L [C++26]
|
||||||
__cpp_lib_generic_unordered_lookup 201811L [C++20]
|
__cpp_lib_erase_if 202002L [C++20]
|
||||||
__cpp_lib_node_extract 201606L [C++17]
|
__cpp_lib_generic_unordered_lookup 201811L [C++20]
|
||||||
__cpp_lib_nonmember_container_access 201411L [C++17]
|
__cpp_lib_node_extract 201606L [C++17]
|
||||||
__cpp_lib_ranges_to_container 202202L [C++23]
|
__cpp_lib_nonmember_container_access 201411L [C++17]
|
||||||
__cpp_lib_unordered_map_try_emplace 201411L [C++17]
|
__cpp_lib_ranges_to_container 202202L [C++23]
|
||||||
|
__cpp_lib_unordered_map_try_emplace 201411L [C++17]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
@ -39,6 +40,10 @@
|
|||||||
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifdef __cpp_lib_erase_if
|
# ifdef __cpp_lib_erase_if
|
||||||
# error "__cpp_lib_erase_if should not be defined before c++20"
|
# error "__cpp_lib_erase_if should not be defined before c++20"
|
||||||
# endif
|
# endif
|
||||||
@ -73,6 +78,10 @@
|
|||||||
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifdef __cpp_lib_erase_if
|
# ifdef __cpp_lib_erase_if
|
||||||
# error "__cpp_lib_erase_if should not be defined before c++20"
|
# error "__cpp_lib_erase_if should not be defined before c++20"
|
||||||
# endif
|
# endif
|
||||||
@ -110,6 +119,10 @@
|
|||||||
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifdef __cpp_lib_erase_if
|
# ifdef __cpp_lib_erase_if
|
||||||
# error "__cpp_lib_erase_if should not be defined before c++20"
|
# error "__cpp_lib_erase_if should not be defined before c++20"
|
||||||
# endif
|
# endif
|
||||||
@ -156,6 +169,10 @@
|
|||||||
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifndef __cpp_lib_erase_if
|
# ifndef __cpp_lib_erase_if
|
||||||
# error "__cpp_lib_erase_if should be defined in c++20"
|
# error "__cpp_lib_erase_if should be defined in c++20"
|
||||||
# endif
|
# endif
|
||||||
@ -217,6 +234,10 @@
|
|||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifndef __cpp_lib_erase_if
|
# ifndef __cpp_lib_erase_if
|
||||||
# error "__cpp_lib_erase_if should be defined in c++23"
|
# error "__cpp_lib_erase_if should be defined in c++23"
|
||||||
# endif
|
# endif
|
||||||
@ -287,6 +308,19 @@
|
|||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# if !defined(_LIBCPP_VERSION)
|
||||||
|
# ifndef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should be defined in c++26"
|
||||||
|
# endif
|
||||||
|
# if __cpp_lib_associative_heterogeneous_insertion != 202306L
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should have the value 202306L in c++26"
|
||||||
|
# endif
|
||||||
|
# else // _LIBCPP_VERSION
|
||||||
|
# ifdef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined because it is unimplemented in libc++!"
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifndef __cpp_lib_erase_if
|
# ifndef __cpp_lib_erase_if
|
||||||
# error "__cpp_lib_erase_if should be defined in c++26"
|
# error "__cpp_lib_erase_if should be defined in c++26"
|
||||||
# endif
|
# endif
|
||||||
|
@ -15,14 +15,15 @@
|
|||||||
|
|
||||||
// Test the feature test macros defined by <unordered_set>
|
// Test the feature test macros defined by <unordered_set>
|
||||||
|
|
||||||
/* Constant Value
|
/* Constant Value
|
||||||
__cpp_lib_allocator_traits_is_always_equal 201411L [C++17]
|
__cpp_lib_allocator_traits_is_always_equal 201411L [C++17]
|
||||||
__cpp_lib_associative_heterogeneous_erasure 202110L [C++23]
|
__cpp_lib_associative_heterogeneous_erasure 202110L [C++23]
|
||||||
__cpp_lib_erase_if 202002L [C++20]
|
__cpp_lib_associative_heterogeneous_insertion 202306L [C++26]
|
||||||
__cpp_lib_generic_unordered_lookup 201811L [C++20]
|
__cpp_lib_erase_if 202002L [C++20]
|
||||||
__cpp_lib_node_extract 201606L [C++17]
|
__cpp_lib_generic_unordered_lookup 201811L [C++20]
|
||||||
__cpp_lib_nonmember_container_access 201411L [C++17]
|
__cpp_lib_node_extract 201606L [C++17]
|
||||||
__cpp_lib_ranges_to_container 202202L [C++23]
|
__cpp_lib_nonmember_container_access 201411L [C++17]
|
||||||
|
__cpp_lib_ranges_to_container 202202L [C++23]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <unordered_set>
|
#include <unordered_set>
|
||||||
@ -38,6 +39,10 @@
|
|||||||
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifdef __cpp_lib_erase_if
|
# ifdef __cpp_lib_erase_if
|
||||||
# error "__cpp_lib_erase_if should not be defined before c++20"
|
# error "__cpp_lib_erase_if should not be defined before c++20"
|
||||||
# endif
|
# endif
|
||||||
@ -68,6 +73,10 @@
|
|||||||
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifdef __cpp_lib_erase_if
|
# ifdef __cpp_lib_erase_if
|
||||||
# error "__cpp_lib_erase_if should not be defined before c++20"
|
# error "__cpp_lib_erase_if should not be defined before c++20"
|
||||||
# endif
|
# endif
|
||||||
@ -101,6 +110,10 @@
|
|||||||
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifdef __cpp_lib_erase_if
|
# ifdef __cpp_lib_erase_if
|
||||||
# error "__cpp_lib_erase_if should not be defined before c++20"
|
# error "__cpp_lib_erase_if should not be defined before c++20"
|
||||||
# endif
|
# endif
|
||||||
@ -140,6 +153,10 @@
|
|||||||
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifndef __cpp_lib_erase_if
|
# ifndef __cpp_lib_erase_if
|
||||||
# error "__cpp_lib_erase_if should be defined in c++20"
|
# error "__cpp_lib_erase_if should be defined in c++20"
|
||||||
# endif
|
# endif
|
||||||
@ -194,6 +211,10 @@
|
|||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifndef __cpp_lib_erase_if
|
# ifndef __cpp_lib_erase_if
|
||||||
# error "__cpp_lib_erase_if should be defined in c++23"
|
# error "__cpp_lib_erase_if should be defined in c++23"
|
||||||
# endif
|
# endif
|
||||||
@ -257,6 +278,19 @@
|
|||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# if !defined(_LIBCPP_VERSION)
|
||||||
|
# ifndef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should be defined in c++26"
|
||||||
|
# endif
|
||||||
|
# if __cpp_lib_associative_heterogeneous_insertion != 202306L
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should have the value 202306L in c++26"
|
||||||
|
# endif
|
||||||
|
# else // _LIBCPP_VERSION
|
||||||
|
# ifdef __cpp_lib_associative_heterogeneous_insertion
|
||||||
|
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined because it is unimplemented in libc++!"
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifndef __cpp_lib_erase_if
|
# ifndef __cpp_lib_erase_if
|
||||||
# error "__cpp_lib_erase_if should be defined in c++26"
|
# error "__cpp_lib_erase_if should be defined in c++26"
|
||||||
# endif
|
# endif
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -87,7 +87,11 @@ feature_test_macros = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "__cpp_lib_allocate_at_least",
|
"name": "__cpp_lib_allocate_at_least",
|
||||||
"values": {"c++23": 202106},
|
"values": {
|
||||||
|
"c++23": 202106,
|
||||||
|
# Note LWG3887 Version macro for allocate_at_least
|
||||||
|
#"c++26": 202302, # P2652R2 Disallow User Specialization of allocator_traits
|
||||||
|
},
|
||||||
"headers": ["memory"],
|
"headers": ["memory"],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -133,6 +137,12 @@ feature_test_macros = [
|
|||||||
"headers": ["map", "set", "unordered_map", "unordered_set"],
|
"headers": ["map", "set", "unordered_map", "unordered_set"],
|
||||||
"unimplemented": True,
|
"unimplemented": True,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "__cpp_lib_associative_heterogeneous_insertion",
|
||||||
|
"values": {"c++26": 202306}, # P2363R5 Extending associative containers with the remaining heterogeneous overloads
|
||||||
|
"headers": ["map", "set", "unordered_map", "unordered_set"],
|
||||||
|
"unimplemented": True,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "__cpp_lib_assume_aligned",
|
"name": "__cpp_lib_assume_aligned",
|
||||||
"values": {"c++20": 201811},
|
"values": {"c++20": 201811},
|
||||||
@ -192,13 +202,19 @@ feature_test_macros = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "__cpp_lib_bind_back",
|
"name": "__cpp_lib_bind_back",
|
||||||
"values": {"c++23": 202202},
|
"values": {
|
||||||
|
"c++23": 202202,
|
||||||
|
"c++26": 202306, # P2714R1 Bind front and back to NTTP callables
|
||||||
|
},
|
||||||
"headers": ["functional"],
|
"headers": ["functional"],
|
||||||
"unimplemented": True,
|
"unimplemented": True,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "__cpp_lib_bind_front",
|
"name": "__cpp_lib_bind_front",
|
||||||
"values": {"c++20": 201907},
|
"values": {
|
||||||
|
"c++20": 201907,
|
||||||
|
"c++26": 202306, # P2714R1 Bind front and back to NTTP callables
|
||||||
|
},
|
||||||
"headers": ["functional"],
|
"headers": ["functional"],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -212,6 +228,12 @@ feature_test_macros = [
|
|||||||
"headers": ["bit"],
|
"headers": ["bit"],
|
||||||
"unimplemented": True,
|
"unimplemented": True,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "__cpp_lib_bitset",
|
||||||
|
"values": {"c++26": 202306}, # P2697R1 Interfacing bitset with string_view
|
||||||
|
"headers": ["bitset"],
|
||||||
|
"unimplemented": True,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "__cpp_lib_bool_constant",
|
"name": "__cpp_lib_bool_constant",
|
||||||
"values": {"c++17": 201505},
|
"values": {"c++17": 201505},
|
||||||
@ -255,7 +277,10 @@ feature_test_macros = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "__cpp_lib_chrono",
|
"name": "__cpp_lib_chrono",
|
||||||
"values": {"c++17": 201611},
|
"values": {
|
||||||
|
"c++17": 201611,
|
||||||
|
#"c++26": 202306, # P2592R3 Hashing support for std::chrono value classes
|
||||||
|
},
|
||||||
"headers": ["chrono"],
|
"headers": ["chrono"],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -280,7 +305,10 @@ feature_test_macros = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "__cpp_lib_constexpr_algorithms",
|
"name": "__cpp_lib_constexpr_algorithms",
|
||||||
"values": {"c++20": 201806},
|
"values": {
|
||||||
|
"c++20": 201806,
|
||||||
|
#"c++26": 202306, # P2562R1 constexpr Stable Sorting
|
||||||
|
},
|
||||||
"headers": ["algorithm", "utility"],
|
"headers": ["algorithm", "utility"],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -359,6 +387,12 @@ feature_test_macros = [
|
|||||||
"values": {"c++20": 201907},
|
"values": {"c++20": 201907},
|
||||||
"headers": ["vector"],
|
"headers": ["vector"],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "__cpp_lib_copyable_function",
|
||||||
|
"values": {"c++26": 202306}, # P2548R6 copyable_function
|
||||||
|
"headers": ["functional"],
|
||||||
|
"unimplemented": True,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "__cpp_lib_coroutine",
|
"name": "__cpp_lib_coroutine",
|
||||||
"values": {"c++20": 201902},
|
"values": {"c++20": 201902},
|
||||||
@ -428,6 +462,10 @@ feature_test_macros = [
|
|||||||
"c++20": 202106,
|
"c++20": 202106,
|
||||||
# "c++23": 202207, Not implemented P2419R2 Clarify handling of encodings in localized formatting of chrono types
|
# "c++23": 202207, Not implemented P2419R2 Clarify handling of encodings in localized formatting of chrono types
|
||||||
},
|
},
|
||||||
|
# Note these three papers are adopted at the June 2023 meeting and have sequential numbering
|
||||||
|
# 202304 P2510R3 Formatting pointers
|
||||||
|
# 202305 P2757R3 Type-checking format args
|
||||||
|
# 202306 P2637R3 Member Visit
|
||||||
"headers": ["format"],
|
"headers": ["format"],
|
||||||
"unimplemented": True,
|
"unimplemented": True,
|
||||||
},
|
},
|
||||||
@ -447,6 +485,18 @@ feature_test_macros = [
|
|||||||
"values": {"c++23": 202207},
|
"values": {"c++23": 202207},
|
||||||
"headers": ["utility"],
|
"headers": ["utility"],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "__cpp_lib_fstream_native_handle",
|
||||||
|
"values": {"c++26": 202306}, # P1759R6 Native handles and file streams
|
||||||
|
"headers": ["fstream"],
|
||||||
|
"unimplemented": True,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "__cpp_lib_function_ref",
|
||||||
|
"values": {"c++26": 202306}, # P0792R14 function_ref: a type-erased callable reference
|
||||||
|
"headers": ["functional"],
|
||||||
|
"unimplemented": True,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "__cpp_lib_gcd_lcm",
|
"name": "__cpp_lib_gcd_lcm",
|
||||||
"values": {"c++17": 201606},
|
"values": {"c++17": 201606},
|
||||||
@ -474,6 +524,12 @@ feature_test_macros = [
|
|||||||
"values": {"c++17": 201606},
|
"values": {"c++17": 201606},
|
||||||
"headers": ["type_traits"],
|
"headers": ["type_traits"],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "__cpp_lib_hazard_pointer",
|
||||||
|
"values": {"c++26": 202306}, # P2530R3 Hazard Pointers for C++26
|
||||||
|
"headers": ["hazard_pointer"],# TODO verify this entry since the paper was underspecified.
|
||||||
|
"unimplemented": True,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "__cpp_lib_hypot",
|
"name": "__cpp_lib_hypot",
|
||||||
"values": {"c++17": 201603},
|
"values": {"c++17": 201603},
|
||||||
@ -679,7 +735,10 @@ feature_test_macros = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "__cpp_lib_not_fn",
|
"name": "__cpp_lib_not_fn",
|
||||||
"values": {"c++17": 201603},
|
"values": {
|
||||||
|
"c++17": 201603,
|
||||||
|
#"c++26": 202306, # P2714R1 Bind front and back to NTTP callables
|
||||||
|
},
|
||||||
"headers": ["functional"],
|
"headers": ["functional"],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -785,11 +844,23 @@ feature_test_macros = [
|
|||||||
"headers": ["ranges", "tuple", "utility"],
|
"headers": ["ranges", "tuple", "utility"],
|
||||||
"unimplemented": True,
|
"unimplemented": True,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "__cpp_lib_ratio",
|
||||||
|
"values": {"c++26": 202306}, # P2734R0 Adding the new SI prefixes
|
||||||
|
"headers": ["ratio"],
|
||||||
|
"unimplemented": True,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "__cpp_lib_raw_memory_algorithms",
|
"name": "__cpp_lib_raw_memory_algorithms",
|
||||||
"values": {"c++17": 201606},
|
"values": {"c++17": 201606},
|
||||||
"headers": ["memory"],
|
"headers": ["memory"],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "__cpp_lib_rcu",
|
||||||
|
"values": {"c++26": 202306}, # P2545R4 Read-Copy Update (RCU)
|
||||||
|
"headers": ["rcu"], # TODO verify this entry since the paper was underspecified.
|
||||||
|
"unimplemented": True,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "__cpp_lib_reference_from_temporary",
|
"name": "__cpp_lib_reference_from_temporary",
|
||||||
"values": {"c++23": 202202},
|
"values": {"c++23": 202202},
|
||||||
@ -863,6 +934,12 @@ feature_test_macros = [
|
|||||||
"headers": ["memory"],
|
"headers": ["memory"],
|
||||||
"unimplemented": True,
|
"unimplemented": True,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "__cpp_lib_smart_ptr_owner_equality",
|
||||||
|
"values": {"c++26": 202306}, # P1901R2 Enabling the Use of weak_ptr as Keys in Unordered Associative Containers
|
||||||
|
"headers": ["memory"],
|
||||||
|
"unimplemented": True,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "__cpp_lib_source_location",
|
"name": "__cpp_lib_source_location",
|
||||||
"values": {"c++20": 201907},
|
"values": {"c++20": 201907},
|
||||||
@ -886,6 +963,12 @@ feature_test_macros = [
|
|||||||
"values": {"c++20": 201902},
|
"values": {"c++20": 201902},
|
||||||
"headers": ["iterator"],
|
"headers": ["iterator"],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "__cpp_lib_sstream_from_string_view",
|
||||||
|
"values": {"c++26": 202306}, # P2495R3 Interfacing stringstreams with string_view
|
||||||
|
"headers": ["sstream"],
|
||||||
|
"unimplemented": True,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "__cpp_lib_stacktrace",
|
"name": "__cpp_lib_stacktrace",
|
||||||
"values": {"c++23": 202011},
|
"values": {"c++23": 202011},
|
||||||
@ -922,12 +1005,24 @@ feature_test_macros = [
|
|||||||
"values": {"c++17": 201606, "c++20": 201803},
|
"values": {"c++17": 201606, "c++20": 201803},
|
||||||
"headers": ["string", "string_view"],
|
"headers": ["string", "string_view"],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "__cpp_lib_submdspan",
|
||||||
|
"values": {"c++26": 202306}, # P2630R4 submdspan
|
||||||
|
"headers": ["mdspan"],
|
||||||
|
"unimplemented": True,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "__cpp_lib_syncbuf",
|
"name": "__cpp_lib_syncbuf",
|
||||||
"values": {"c++20": 201803},
|
"values": {"c++20": 201803},
|
||||||
"headers": ["syncstream"],
|
"headers": ["syncstream"],
|
||||||
"unimplemented": True,
|
"unimplemented": True,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "__cpp_lib_text_encoding",
|
||||||
|
"values": {"c++26": 202306}, # P1885R12 Naming Text Encodings to Demystify Them
|
||||||
|
"headers": ["text_encoding"],
|
||||||
|
"unimplemented": True,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "__cpp_lib_three_way_comparison",
|
"name": "__cpp_lib_three_way_comparison",
|
||||||
"values": {"c++20": 201907},
|
"values": {"c++20": 201907},
|
||||||
@ -946,10 +1041,19 @@ feature_test_macros = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "__cpp_lib_to_chars",
|
"name": "__cpp_lib_to_chars",
|
||||||
"values": {"c++17": 201611},
|
"values": {
|
||||||
|
"c++17": 201611,
|
||||||
|
#"c++26: 202306, # P2497R0 Testing for success or failure of <charconv> functions
|
||||||
|
},
|
||||||
"headers": ["charconv"],
|
"headers": ["charconv"],
|
||||||
"unimplemented": True,
|
"unimplemented": True,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "__cpp_lib_to_string",
|
||||||
|
"values": {"c++23": 202306}, # P2587R3 to_string or not to_string
|
||||||
|
"headers": ["string"],
|
||||||
|
"unimplemented": True,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "__cpp_lib_to_underlying",
|
"name": "__cpp_lib_to_underlying",
|
||||||
"values": {"c++23": 202102},
|
"values": {"c++23": 202102},
|
||||||
@ -1015,6 +1119,12 @@ feature_test_macros = [
|
|||||||
"values": {"c++17": 201411},
|
"values": {"c++17": 201411},
|
||||||
"headers": ["type_traits"],
|
"headers": ["type_traits"],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "__cpp_lib_within_lifetime",
|
||||||
|
"values": {"c++26": 202306}, # P2641R4 Checking if a union alternative is active
|
||||||
|
"headers": ["type_traits"],
|
||||||
|
"unimplemented": True,
|
||||||
|
},
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -1048,6 +1158,7 @@ assert all(
|
|||||||
lit_markup = {
|
lit_markup = {
|
||||||
"barrier": ["UNSUPPORTED: no-threads"],
|
"barrier": ["UNSUPPORTED: no-threads"],
|
||||||
"filesystem": ["UNSUPPORTED: no-filesystem"],
|
"filesystem": ["UNSUPPORTED: no-filesystem"],
|
||||||
|
"fstream": ["UNSUPPORTED: no-localization"],
|
||||||
"iomanip": ["UNSUPPORTED: no-localization"],
|
"iomanip": ["UNSUPPORTED: no-localization"],
|
||||||
"ios": ["UNSUPPORTED: no-localization"],
|
"ios": ["UNSUPPORTED: no-localization"],
|
||||||
"iostream": ["UNSUPPORTED: no-localization"],
|
"iostream": ["UNSUPPORTED: no-localization"],
|
||||||
@ -1059,6 +1170,7 @@ lit_markup = {
|
|||||||
"regex": ["UNSUPPORTED: no-localization"],
|
"regex": ["UNSUPPORTED: no-localization"],
|
||||||
"semaphore": ["UNSUPPORTED: no-threads"],
|
"semaphore": ["UNSUPPORTED: no-threads"],
|
||||||
"shared_mutex": ["UNSUPPORTED: no-threads"],
|
"shared_mutex": ["UNSUPPORTED: no-threads"],
|
||||||
|
"sstream": ["UNSUPPORTED: no-localization"],
|
||||||
"stdatomic.h": ["UNSUPPORTED: no-threads"],
|
"stdatomic.h": ["UNSUPPORTED: no-threads"],
|
||||||
"stop_token": ["UNSUPPORTED: no-threads"],
|
"stop_token": ["UNSUPPORTED: no-threads"],
|
||||||
"thread": ["UNSUPPORTED: no-threads"],
|
"thread": ["UNSUPPORTED: no-threads"],
|
||||||
|
Loading…
Reference in New Issue
Block a user