FYI: FreeBSD main's llvm17: c++ feature macro status (what is reported to not match any vintage)
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 09 Dec 2023 22:54:20 UTC
version_dump.cpp is taken from part of the page: https://en.cppreference.com/w/cpp/feature_test __cpp_lib_execution is an example of not yet sufficient to have a feature macro yet. Other information may be available about the detailed status of such things. (The program does not output the "L" suffix and adds a "-" separator to make year and month easier to notice compared to the encodings in the actual feature macros.) From an amd64 context: # c++ -std=c++26 -pedantic -Wall -Wextra version_dump.cpp # ./a.out | grep -E '(/|-------)' C++11 CORE (20/20) C++14 CORE (8/9) __cpp_sized_deallocation ------- < 2013-09 C++14 LIB (20/20) C++17 CORE (19/20) __cpp_template_template_args ------- < 2016-11 C++17 LIB (44/49) __cpp_lib_execution ------- < 2016-03 __cpp_lib_hardware_interference_size ------- < 2017-03 __cpp_lib_math_special_functions ------- < 2016-03 __cpp_lib_parallel_algorithm ------- < 2016-03 __cpp_lib_to_chars ------- < 2016-11 C++20 CORE (14/18) __cpp_modules ------- < 2019-07 C++20 LIB (54/67) __cpp_lib_atomic_float ------- < 2017-11 __cpp_lib_atomic_ref ------- < 2018-06 __cpp_lib_atomic_shared_ptr ------- < 2017-11 __cpp_lib_execution ------- < 2019-02 __cpp_lib_format ------- < 2021-10 __cpp_lib_is_layout_compatible ------- < 2019-07 __cpp_lib_is_pointer_interconvertible ------- < 2019-07 __cpp_lib_jthread ------- < 2019-11 __cpp_lib_smart_ptr_for_overwrite ------- < 2020-02 __cpp_lib_syncbuf ------- < 2018-03 __cpp_lib_three_way_comparison ------- < 2019-07 C++23 CORE (6/10) __cpp_auto_cast ------- < 2021-10 __cpp_explicit_this_parameter ------- < 2021-10 C++23 LIB (21/64) __cpp_lib_algorithm_iterator_requirements ------- < 2022-07 __cpp_lib_associative_heterogeneous_erasure ------- < 2021-10 __cpp_lib_bind_back ------- < 2022-02 __cpp_lib_common_reference ------- < 2023-02 __cpp_lib_common_reference_wrapper ------- < 2023-02 __cpp_lib_constexpr_cmath ------- < 2022-02 __cpp_lib_containers_ranges ------- < 2022-02 __cpp_lib_flat_map ------- < 2022-07 __cpp_lib_flat_set ------- < 2022-07 __cpp_lib_format ------- < 2022-07 __cpp_lib_formatters ------- < 2023-02 __cpp_lib_generator ------- < 2022-07 __cpp_lib_ios_noreplace ------- < 2022-07 __cpp_lib_is_implicit_lifetime ------- < 2023-02 __cpp_lib_mdspan ------- < 2022-07 __cpp_lib_modules ------- < 2022-07 __cpp_lib_move_only_function ------- < 2021-10 __cpp_lib_out_ptr ------- < 2021-06 __cpp_lib_print ------- < 2022-07 __cpp_lib_ranges_as_const ------- < 2022-07 __cpp_lib_ranges_cartesian_product ------- < 2022-07 __cpp_lib_ranges_chunk ------- < 2022-02 __cpp_lib_ranges_chunk_by ------- < 2022-02 __cpp_lib_ranges_contains ------- < 2022-07 __cpp_lib_ranges_enumerate ------- < 2023-02 __cpp_lib_ranges_find_last ------- < 2022-07 __cpp_lib_ranges_fold ------- < 2022-07 __cpp_lib_ranges_iota ------- < 2022-02 __cpp_lib_ranges_join_with ------- < 2022-02 __cpp_lib_ranges_slide ------- < 2022-02 __cpp_lib_ranges_starts_ends_with ------- < 2021-06 __cpp_lib_ranges_stride ------- < 2022-07 __cpp_lib_ranges_zip ------- < 2021-10 __cpp_lib_reference_from_temporary ------- < 2022-02 __cpp_lib_spanstream ------- < 2021-06 __cpp_lib_stacktrace ------- < 2020-11 __cpp_lib_start_lifetime_as ------- < 2022-07 __cpp_lib_tuple_like ------- < 2022-07 C++26 CORE (2/3) __cpp_placeholder_variables ------- < 2023-06 C++26 LIB (2/39) __cpp_lib_associative_heterogeneous_insertion ------- < 2023-06 __cpp_lib_bind_back ------- < 2023-06 __cpp_lib_bitset ------- < 2023-06 __cpp_lib_constexpr_cmath ------- < 2023-06 __cpp_lib_copyable_function ------- < 2023-06 __cpp_lib_format ------- < 2023-06 __cpp_lib_freestanding_char_traits ------- < 2023-06 __cpp_lib_freestanding_charconv ------- < 2023-06 __cpp_lib_freestanding_cstdlib ------- < 2023-06 __cpp_lib_freestanding_cstring ------- < 2023-06 __cpp_lib_freestanding_cwchar ------- < 2023-06 __cpp_lib_freestanding_errc ------- < 2023-06 __cpp_lib_freestanding_feature_test_macros ------- < 2023-06 __cpp_lib_freestanding_functional ------- < 2023-06 __cpp_lib_freestanding_iterator ------- < 2023-06 __cpp_lib_freestanding_memory ------- < 2023-06 __cpp_lib_freestanding_operator_new ------- < 2023-06 __cpp_lib_freestanding_ranges ------- < 2023-06 __cpp_lib_freestanding_ratio ------- < 2023-06 __cpp_lib_freestanding_tuple ------- < 2023-06 __cpp_lib_freestanding_utility ------- < 2023-06 __cpp_lib_fstream_native_handle ------- < 2023-06 __cpp_lib_function_ref ------- < 2023-06 __cpp_lib_hazard_pointer ------- < 2023-06 __cpp_lib_is_within_lifetime ------- < 2023-06 __cpp_lib_rcu ------- < 2023-06 __cpp_lib_smart_ptr_owner_equality ------- < 2023-06 __cpp_lib_sstream_from_string_view ------- < 2023-06 __cpp_lib_submdspan ------- < 2023-06 __cpp_lib_text_encoding ------- < 2023-06 __cpp_lib_to_chars ------- < 2023-06 __cpp_lib_to_string ------- < 2023-06 ALL CORE MACROS UP TO C++26 (56/67) __cpp_auto_cast ------- < 2021-10 __cpp_explicit_this_parameter ------- < 2021-10 __cpp_modules ------- < 2019-07 __cpp_placeholder_variables ------- < 2023-06 __cpp_sized_deallocation ------- < 2013-09 __cpp_template_template_args ------- < 2016-11 ALL LIB MACROS UP TO C++26 (124/214) __cpp_lib_algorithm_iterator_requirements ------- < 2022-07 __cpp_lib_associative_heterogeneous_erasure ------- < 2021-10 __cpp_lib_associative_heterogeneous_insertion ------- < 2023-06 __cpp_lib_atomic_float ------- < 2017-11 __cpp_lib_atomic_ref ------- < 2018-06 __cpp_lib_atomic_shared_ptr ------- < 2017-11 __cpp_lib_bind_back ------- < 2023-06 __cpp_lib_bitset ------- < 2023-06 __cpp_lib_common_reference ------- < 2023-02 __cpp_lib_common_reference_wrapper ------- < 2023-02 __cpp_lib_constexpr_cmath ------- < 2023-06 __cpp_lib_containers_ranges ------- < 2022-02 __cpp_lib_copyable_function ------- < 2023-06 __cpp_lib_execution ------- < 2019-02 __cpp_lib_flat_map ------- < 2022-07 __cpp_lib_flat_set ------- < 2022-07 __cpp_lib_format ------- < 2023-06 __cpp_lib_formatters ------- < 2023-02 __cpp_lib_freestanding_char_traits ------- < 2023-06 __cpp_lib_freestanding_charconv ------- < 2023-06 __cpp_lib_freestanding_cstdlib ------- < 2023-06 __cpp_lib_freestanding_cstring ------- < 2023-06 __cpp_lib_freestanding_cwchar ------- < 2023-06 __cpp_lib_freestanding_errc ------- < 2023-06 __cpp_lib_freestanding_feature_test_macros ------- < 2023-06 __cpp_lib_freestanding_functional ------- < 2023-06 __cpp_lib_freestanding_iterator ------- < 2023-06 __cpp_lib_freestanding_memory ------- < 2023-06 __cpp_lib_freestanding_operator_new ------- < 2023-06 __cpp_lib_freestanding_ranges ------- < 2023-06 __cpp_lib_freestanding_ratio ------- < 2023-06 __cpp_lib_freestanding_tuple ------- < 2023-06 __cpp_lib_freestanding_utility ------- < 2023-06 __cpp_lib_fstream_native_handle ------- < 2023-06 __cpp_lib_function_ref ------- < 2023-06 __cpp_lib_generator ------- < 2022-07 __cpp_lib_hardware_interference_size ------- < 2017-03 __cpp_lib_hazard_pointer ------- < 2023-06 __cpp_lib_ios_noreplace ------- < 2022-07 __cpp_lib_is_implicit_lifetime ------- < 2023-02 __cpp_lib_is_layout_compatible ------- < 2019-07 __cpp_lib_is_pointer_interconvertible ------- < 2019-07 __cpp_lib_is_within_lifetime ------- < 2023-06 __cpp_lib_jthread ------- < 2019-11 __cpp_lib_math_special_functions ------- < 2016-03 __cpp_lib_mdspan ------- < 2022-07 __cpp_lib_modules ------- < 2022-07 __cpp_lib_move_only_function ------- < 2021-10 __cpp_lib_out_ptr ------- < 2021-06 __cpp_lib_parallel_algorithm ------- < 2016-03 __cpp_lib_print ------- < 2022-07 __cpp_lib_ranges_as_const ------- < 2022-07 __cpp_lib_ranges_cartesian_product ------- < 2022-07 __cpp_lib_ranges_chunk ------- < 2022-02 __cpp_lib_ranges_chunk_by ------- < 2022-02 __cpp_lib_ranges_contains ------- < 2022-07 __cpp_lib_ranges_enumerate ------- < 2023-02 __cpp_lib_ranges_find_last ------- < 2022-07 __cpp_lib_ranges_fold ------- < 2022-07 __cpp_lib_ranges_iota ------- < 2022-02 __cpp_lib_ranges_join_with ------- < 2022-02 __cpp_lib_ranges_slide ------- < 2022-02 __cpp_lib_ranges_starts_ends_with ------- < 2021-06 __cpp_lib_ranges_stride ------- < 2022-07 __cpp_lib_ranges_zip ------- < 2021-10 __cpp_lib_rcu ------- < 2023-06 __cpp_lib_reference_from_temporary ------- < 2022-02 __cpp_lib_smart_ptr_for_overwrite ------- < 2020-02 __cpp_lib_smart_ptr_owner_equality ------- < 2023-06 __cpp_lib_spanstream ------- < 2021-06 __cpp_lib_sstream_from_string_view ------- < 2023-06 __cpp_lib_stacktrace ------- < 2020-11 __cpp_lib_start_lifetime_as ------- < 2022-07 __cpp_lib_submdspan ------- < 2023-06 __cpp_lib_syncbuf ------- < 2018-03 __cpp_lib_text_encoding ------- < 2023-06 __cpp_lib_three_way_comparison ------- < 2019-07 __cpp_lib_to_chars ------- < 2023-06 __cpp_lib_to_string ------- < 2023-06 __cpp_lib_tuple_like ------- < 2022-07 ATTRIBUTES (9/10) assume ------- < 2022-07 === Mark Millard marklmi at yahoo.com