Макросы тестирования функциональности библиотеки (начиная с C++20)
Материал из cppreference.com
Каждый из следующих макросов определяется, если включен заголовок <version> или один из соответствующих заголовков, указанных в таблице.
Имя макроса | Значение | Заголовок |
---|---|---|
__cpp_lib_addressof_constexpr | 201603L | <memory> |
__cpp_lib_algorithm_iterator_requirements | 202207L | <algorithm><numeric><memory> |
__cpp_lib_allocate_at_least | 202302L | <memory> |
__cpp_lib_allocator_traits_is_always_equal | 201411L | <memory><scoped_allocator><string><deque><forward_list><list><vector><map><set><unordered_map><unordered_set> |
__cpp_lib_adaptor_iterator_pair_constructor | 202106L | <stack><queue> |
__cpp_lib_any | 201606L | <any> |
__cpp_lib_apply | 201603L | <tuple> |
__cpp_lib_array_constexpr | 201811L | <iterator><array> |
__cpp_lib_as_const | 201510L | <utility> |
__cpp_lib_associative_heterogeneous_erasure | 202110L | <map><set><unordered_map><unordered_set> |
__cpp_lib_associative_heterogeneous_insertion | 202306L | <map><set><unordered_map><unordered_set> |
__cpp_lib_assume_aligned | 201811L | <memory> |
__cpp_lib_atomic_flag_test | 201907L | <atomic> |
__cpp_lib_atomic_float | 201711L | <atomic> |
__cpp_lib_atomic_is_always_lock_free | 201603L | <atomic> |
__cpp_lib_atomic_lock_free_type_aliases | 201907L | <atomic> |
__cpp_lib_atomic_ref | 201806L | <atomic> |
__cpp_lib_atomic_shared_ptr | 201711L | <memory> |
__cpp_lib_atomic_value_initialization | 201911L | <atomic><memory> |
__cpp_lib_atomic_wait | 201907L | <atomic> |
__cpp_lib_barrier | 202302L | <barrier> |
__cpp_lib_bind_back | 202306L | <functional> |
__cpp_lib_bind_front | 202306L | <functional> |
__cpp_lib_bit_cast | 201806L | <bit> |
__cpp_lib_bitops | 201907L | <bit> |
__cpp_lib_bitset | 202306L | <bitset> |
__cpp_lib_bool_constant | 201505L | <type_traits> |
__cpp_lib_bounded_array_traits | 201902L | <type_traits> |
__cpp_lib_boyer_moore_searcher | 201603L | <functional> |
__cpp_lib_byte | 201603L | <cstddef> |
__cpp_lib_byteswap | 202110L | <bit> |
__cpp_lib_char8_t | 201907L | <atomic><filesystem><istream><limits><locale><ostream><string><string_view> |
__cpp_lib_chrono | 202306L | <chrono> |
__cpp_lib_chrono_udls | 201304L | <chrono> |
__cpp_lib_clamp | 201603L | <algorithm> |
__cpp_lib_common_reference | 202302L | <type_traits> |
__cpp_lib_common_reference_wrapper | 202302L | <functional> |
__cpp_lib_complex_udls | 201309L | <complex> |
__cpp_lib_concepts | 202207L | <concepts><compare> |
__cpp_lib_constexpr_algorithms | 202306L | <algorithm><utility> |
__cpp_lib_constexpr_bitset | 202207L | <bitset> |
__cpp_lib_constexpr_charconv | 202207L | <charconv> |
__cpp_lib_constexpr_cmath | 202306L | <cmath><cstdlib> |
__cpp_lib_constexpr_complex | 201711L | <complex> |
__cpp_lib_constexpr_dynamic_alloc | 201907L | <memory> |
__cpp_lib_constexpr_functional | 201907L | <functional> |
__cpp_lib_constexpr_iterator | 201811L | <iterator> |
__cpp_lib_constexpr_memory | 202202L | <memory> |
__cpp_lib_constexpr_numeric | 201911L | <numeric> |
__cpp_lib_constexpr_string | 201907L | <string> |
__cpp_lib_constexpr_string_view | 201811L | <string_view> |
__cpp_lib_constexpr_tuple | 201811L | <tuple> |
__cpp_lib_constexpr_typeinfo | 202106L | <typeinfo> |
__cpp_lib_constexpr_utility | 201811L | <utility> |
__cpp_lib_constexpr_vector | 201907L | <vector> |
__cpp_lib_containers_ranges | 202202L | <vector><list><forward_list><map><set><unordered_map><unordered_set><deque><queue><stack><string> |
__cpp_lib_copyable_function | 202306L | <functional> |
__cpp_lib_coroutine | 201902L | <coroutine> |
__cpp_lib_destroying_delete | 201806L | <new> |
__cpp_lib_enable_shared_from_this | 201603L | <memory> |
__cpp_lib_endian | 201907L | <bit> |
__cpp_lib_erase_if | 202002L | <string><deque><forward_list><list><vector><map><set><unordered_map><unordered_set> |
__cpp_lib_exchange_function | 201304L | <utility> |
__cpp_lib_execution | 201902L | <execution> |
__cpp_lib_expected | 202211L | <expected> |
__cpp_lib_filesystem | 201703L | <filesystem> |
__cpp_lib_flat_map | 202207L | <flat_map> |
__cpp_lib_flat_set | 202207L | <flat_set> |
__cpp_lib_format | 202306L | <format> |
__cpp_lib_format_ranges | 202207L | <format> |
__cpp_lib_formatters | 202302L | <stacktrace><thread> |
__cpp_lib_forward_like | 202207L | <utility> |
__cpp_lib_freestanding_char_traits | 202306L | <string> |
__cpp_lib_freestanding_charconv | 202306L | <charconv> |
__cpp_lib_freestanding_cstdlib | 202306L | <cstdlib><cmath> |
__cpp_lib_freestanding_cstring | 202306L | <cstring> |
__cpp_lib_freestanding_cwchar | 202306L | <cwchar> |
__cpp_lib_freestanding_errc | 202306L | <cerrno><system_error> |
__cpp_lib_freestanding_feature_test_macros | 202306L | |
__cpp_lib_freestanding_functional | 202306L | <functional> |
__cpp_lib_freestanding_iterator | 202306L | <iterator> |
__cpp_lib_freestanding_memory | 202306L | <memory> |
__cpp_lib_freestanding_ranges | 202306L | <ranges> |
__cpp_lib_freestanding_ratio | 202306L | <ratio> |
__cpp_lib_freestanding_tuple | 202306L | <tuple> |
__cpp_lib_freestanding_utility | 202306L | <utility> |
__cpp_lib_fstream_native_handle | 202306L | <fstream> |
__cpp_lib_function_ref | 202306L | <functional> |
__cpp_lib_gcd_lcm | 201606L | <numeric> |
__cpp_lib_generator | 202207L | <generator> |
__cpp_lib_generic_associative_lookup | 201304L | <map><set> |
__cpp_lib_generic_unordered_lookup | 201811L | <unordered_map><unordered_set> |
__cpp_lib_hardware_interference_size | 201703L | <new> |
__cpp_lib_has_unique_object_representations | 201606L | <type_traits> |
__cpp_lib_hazard_pointer | 202306L | <hazard_pointer> |
__cpp_lib_hypot | 201603L | <cmath> |
__cpp_lib_incomplete_container_elements | 201505L | <forward_list><list><vector> |
__cpp_lib_int_pow2 | 202002L | <bit> |
__cpp_lib_integer_comparison_functions | 202002L | <utility> |
__cpp_lib_integer_sequence | 201304L | <utility> |
__cpp_lib_integral_constant_callable | 201304L | <type_traits> |
__cpp_lib_interpolate | 201902L | <cmath><numeric> |
__cpp_lib_invoke | 201411L | <functional> |
__cpp_lib_invoke_r | 202106L | <functional> |
__cpp_lib_ios_noreplace | 202207L | <ios> |
__cpp_lib_is_aggregate | 201703L | <type_traits> |
__cpp_lib_is_constant_evaluated | 201811L | <type_traits> |
__cpp_lib_is_final | 201402L | <type_traits> |
__cpp_lib_is_implicit_lifetime | 202302L | <type_traits> |
__cpp_lib_is_invocable | 201703L | <type_traits> |
__cpp_lib_is_layout_compatible | 201907L | <type_traits> |
__cpp_lib_is_nothrow_convertible | 201806L | <type_traits> |
__cpp_lib_is_null_pointer | 201309L | <type_traits> |
__cpp_lib_is_pointer_interconvertible | 201907L | <type_traits> |
__cpp_lib_is_scoped_enum | 202011L | <type_traits> |
__cpp_lib_is_swappable | 201603L | <type_traits> |
__cpp_lib_is_within_lifetime | 202306L | <type_traits> |
__cpp_lib_jthread | 201911L | <stop_token><thread> |
__cpp_lib_latch | 201907L | <latch> |
__cpp_lib_launder | 201606L | <new> |
__cpp_lib_list_remove_return_type | 201806L | <forward_list><list> |
__cpp_lib_logical_traits | 201510L | <type_traits> |
__cpp_lib_make_from_tuple | 201606L | <tuple> |
__cpp_lib_make_reverse_iterator | 201402L | <iterator> |
__cpp_lib_make_unique | 201304L | <memory> |
__cpp_lib_map_try_emplace | 201411L | <map> |
__cpp_lib_math_constants | 201907L | <numbers> |
__cpp_lib_math_special_functions | 201603L | <cmath> |
__cpp_lib_mdspan | 202207L | <mdspan> |
__cpp_lib_memory_resource | 201603L | <memory_resource> |
__cpp_lib_modules | 202207L | |
__cpp_lib_move_iterator_concept | 202207L | <iterator> |
__cpp_lib_move_only_function | 202110L | <functional> |
__cpp_lib_node_extract | 201606L | <map><set><unordered_map><unordered_set> |
__cpp_lib_nonmember_container_access | 201411L | <array><deque><forward_list><iterator><list><map><regex><set><string><unordered_map><unordered_set><vector> |
__cpp_lib_not_fn | 202306L | <functional> |
__cpp_lib_null_iterators | 201304L | <iterator> |
__cpp_lib_optional | 202110L | <optional> |
__cpp_lib_out_ptr | 202106L | <memory> |
__cpp_lib_parallel_algorithm | 201603L | <algorithm><numeric> |
__cpp_lib_polymorphic_allocator | 201902L | <memory_resource> |
__cpp_lib_print | 202207L | <print><ostream> |
__cpp_lib_quoted_string_io | 201304L | <iomanip> |
__cpp_lib_ranges | 202302L | <algorithm><functional><iterator><memory><ranges> |
__cpp_lib_ranges_as_const | 202207L | <ranges> |
__cpp_lib_ranges_as_rvalue | 202207L | <ranges> |
__cpp_lib_ranges_cartesian_product | 202207L | <ranges> |
__cpp_lib_ranges_chunk | 202202L | <ranges> |
__cpp_lib_ranges_chunk_by | 202202L | <ranges> |
__cpp_lib_ranges_contains | 202207L | <algorithm> |
__cpp_lib_ranges_enumerate | 202302L | <ranges><version> |
__cpp_lib_ranges_find_last | 202207L | <algorithm> |
__cpp_lib_ranges_fold | 202207L | <algorithm> |
__cpp_lib_ranges_iota | 202202L | <numeric> |
__cpp_lib_ranges_join_with | 202202L | <ranges> |
__cpp_lib_ranges_repeat | 202207L | <ranges> |
__cpp_lib_ranges_slide | 202202L | <ranges> |
__cpp_lib_ranges_starts_ends_with | 202106L | <algorithm> |
__cpp_lib_ranges_stride | 202207L | <ranges> |
__cpp_lib_ranges_to_container | 202202L | <ranges> |
__cpp_lib_ranges_zip | 202110L | <ranges><tuple><utility> |
__cpp_lib_ratio | 202306L | <ratio> |
__cpp_lib_raw_memory_algorithms | 201606L | <memory> |
__cpp_lib_rcu | 202306L | <rcu> |
__cpp_lib_reference_from_temporary | 202202L | <type_traits> |
__cpp_lib_remove_cvref | 201711L | <type_traits> |
__cpp_lib_result_of_sfinae | 201210L | <functional><type_traits> |
__cpp_lib_robust_nonmodifying_seq_ops | 201304L | <algorithm> |
__cpp_lib_sample | 201603L | <algorithm> |
__cpp_lib_scoped_lock | 201703L | <mutex> |
__cpp_lib_semaphore | 201907L | <semaphore> |
__cpp_lib_shared_mutex | 201505L | <shared_mutex> |
__cpp_lib_shared_ptr_arrays | 201707L | <memory> |
__cpp_lib_shared_ptr_weak_type | 201606L | <memory> |
__cpp_lib_shared_timed_mutex | 201402L | <shared_mutex> |
__cpp_lib_shift | 202202L | <algorithm> |
__cpp_lib_smart_ptr_owner_equality | 202306L | <memory> |
__cpp_lib_smart_ptr_for_overwrite | 202002L | <memory> |
__cpp_lib_source_location | 201907L | <source_location> |
__cpp_lib_span | 202002L | <span> |
__cpp_lib_spanstream | 202106L | <spanstream> |
__cpp_lib_ssize | 201902L | <iterator> |
__cpp_lib_sstream_from_string_view | 202306L | <sstream> |
__cpp_lib_stacktrace | 202011L | <stacktrace> |
__cpp_lib_start_lifetime_as | 202207L | <memory> |
__cpp_lib_starts_ends_with | 201711L | <string><string_view> |
__cpp_lib_stdatomic_h | 202011L | <stdatomic.h> |
__cpp_lib_string_contains | 202011L | <string><string_view> |
__cpp_lib_string_resize_and_overwrite | 202110L | <string> |
__cpp_lib_string_udls | 201304L | <string> |
__cpp_lib_string_view | 201803L | <string><string_view> |
__cpp_lib_submdspan | 202306L | <mdspan> |
__cpp_lib_syncbuf | 201803L | <syncstream> |
__cpp_lib_text_encoding | 202306L | <text_encoding> |
__cpp_lib_three_way_comparison | 201907L | <compare> |
__cpp_lib_to_address | 201711L | <memory> |
__cpp_lib_to_array | 201907L | <array> |
__cpp_lib_to_chars | 202306L | <charconv> |
__cpp_lib_to_string | 202306L | <string> |
__cpp_lib_to_underlying | 202102L | <utility> |
__cpp_lib_transformation_trait_aliases | 201304L | <type_traits> |
__cpp_lib_transparent_operators | 201510L | <memory><functional> |
__cpp_lib_tuple_like | 202207L | <utility><tuple><map><unordered_map> |
__cpp_lib_tuple_element_t | 201402L | <tuple> |
__cpp_lib_tuples_by_type | 201304L | <utility><tuple> |
__cpp_lib_type_identity | 201806L | <type_traits> |
__cpp_lib_type_trait_variable_templates | 201510L | <type_traits> |
__cpp_lib_uncaught_exceptions | 201411L | <exception> |
__cpp_lib_unordered_map_try_emplace | 201411L | <unordered_map> |
__cpp_lib_unreachable | 202202L | <utility> |
__cpp_lib_unwrap_ref | 201811L | <type_traits> |
__cpp_lib_variant | 202306L | <variant> |
__cpp_lib_void_t | 202306L | <version> |
Общее количество макросов: 213 |
[править]Примечание
Каждое значение в столбце "Значение" соответствует шаблону: "yyyymmL", где "yyyy" это год, а "mm" месяц, когда соответствующий набор функций был принят к стандартизации. Некоторые значения были увеличены с момента их введения, если возможности данной функциональности были расширены. В приведённой выше таблице содержатся только самые последние значения (то есть взятые из последнего проекта стандарта языка C++). Полный набор значений, включая начальные и промежуточные, можно найти в этой таблице.
[править]Смотрите также
Тестирование функциональностей(C++20) | Набор макросов препроцессора для тестирования соответствующих языковых и библиотечных функциональностей C++ |
Документация C++ по Предопределённые макросимволы |