Each of the macros defined in <version> is also defined
after inclusion of any member of the set of library headers
indicated in the corresponding comment in this synopsis.
Future revisions of C++ might replace
the values of these macros with greater values.
— end note]
#define__cpp_lib_adaptor_iterator_pair_constructor202106L// also in <stack>, <queue>#define__cpp_lib_addressof_constexpr201603L// also in <memory>#define__cpp_lib_algorithm_iterator_requirements202207L// also in <algorithm>, <numeric>, <memory>#define__cpp_lib_allocate_at_least202302L// also in <memory>#define__cpp_lib_allocator_traits_is_always_equal201411L// also in <memory>, <scoped_allocator>, <string>, <deque>, <forward_list>, <list>, <vector>,// <map>, <set>, <unordered_map>, <unordered_set>#define__cpp_lib_any201606L// also in <any>#define__cpp_lib_apply201603L// also in <tuple>#define__cpp_lib_array_constexpr201811L// also in <iterator>, <array>#define__cpp_lib_as_const201510L// also in <utility>#define__cpp_lib_associative_heterogeneous_erasure202110L// also in <map>, <set>, <unordered_map>, <unordered_set>#define__cpp_lib_assume_aligned201811L// also in <memory>#define__cpp_lib_atomic_flag_test201907L// also in <atomic>#define__cpp_lib_atomic_float201711L// also in <atomic>#define__cpp_lib_atomic_is_always_lock_free201603L// also in <atomic>#define__cpp_lib_atomic_lock_free_type_aliases201907L// also in <atomic>#define__cpp_lib_atomic_ref201806L// also in <atomic>#define__cpp_lib_atomic_shared_ptr201711L// also in <memory>#define__cpp_lib_atomic_value_initialization201911L// also in <atomic>, <memory>#define__cpp_lib_atomic_wait201907L// also in <atomic>#define__cpp_lib_barrier202302L// also in <barrier>#define__cpp_lib_bind_back202202L// also in <functional>#define__cpp_lib_bind_front201907L// also in <functional>#define__cpp_lib_bit_cast201806L// also in <bit>#define__cpp_lib_bitops201907L// also in <bit>#define__cpp_lib_bool_constant201505L// also in <type_traits>#define__cpp_lib_bounded_array_traits201902L// also in <type_traits>#define__cpp_lib_boyer_moore_searcher201603L// also in <functional>#define__cpp_lib_byte201603L// also in <cstddef>#define__cpp_lib_byteswap202110L// also in <bit>#define__cpp_lib_char8_t201907L// also in <atomic>, <filesystem>, <istream>, <limits>, <locale>, <ostream>, <string>, <string_view>#define__cpp_lib_chrono201907L// also in <chrono>#define__cpp_lib_chrono_udls201304L// also in <chrono>#define__cpp_lib_clamp201603L// also in <algorithm>#define__cpp_lib_common_reference202302L// also in <type_traits>#define__cpp_lib_common_reference_wrapper202302L// also in <functional>#define__cpp_lib_complex_udls201309L// also in <complex>#define__cpp_lib_concepts202207L// also in <concepts>, <compare>#define__cpp_lib_constexpr_algorithms201806L// also in <algorithm>, <utility>#define__cpp_lib_constexpr_bitset202207L// also in <bitset>#define__cpp_lib_constexpr_charconv202207L// also in <charconv>#define__cpp_lib_constexpr_cmath202202L// also in <cmath>, <cstdlib>#define__cpp_lib_constexpr_complex201711L// also in <complex>#define__cpp_lib_constexpr_dynamic_alloc201907L// also in <memory>#define__cpp_lib_constexpr_functional201907L// also in <functional>#define__cpp_lib_constexpr_iterator201811L// also in <iterator>#define__cpp_lib_constexpr_memory202202L// also in <memory>#define__cpp_lib_constexpr_numeric201911L// also in <numeric>#define__cpp_lib_constexpr_string201907L// also in <string>#define__cpp_lib_constexpr_string_view201811L// also in <string_view>#define__cpp_lib_constexpr_tuple201811L// also in <tuple>#define__cpp_lib_constexpr_typeinfo202106L// also in <typeinfo>#define__cpp_lib_constexpr_utility201811L// also in <utility>#define__cpp_lib_constexpr_vector201907L// also in <vector>#define__cpp_lib_containers_ranges202202L// also in <vector>, <list>, <forward_list>, <map>, <set>, <unordered_map>, <unordered_set>,// <deque>, <queue>, <stack>, <string>#define__cpp_lib_coroutine201902L// also in <coroutine>#define__cpp_lib_destroying_delete201806L// also in <new>#define__cpp_lib_enable_shared_from_this201603L// also in <memory>#define__cpp_lib_endian201907L// also in <bit>#define__cpp_lib_erase_if202002L// also in <string>, <deque>, <forward_list>, <list>, <vector>, <map>, <set>, <unordered_map>,// <unordered_set>#define__cpp_lib_exchange_function201304L// also in <utility>#define__cpp_lib_execution201902L// also in <execution>#define__cpp_lib_expected202211L// also in <expected>#define__cpp_lib_filesystem201703L// also in <filesystem>#define__cpp_lib_flat_map202207L// also in <flat_map>#define__cpp_lib_flat_set202207L// also in <flat_set>#define__cpp_lib_format202207L// also in <format>#define__cpp_lib_format_ranges202207L// also in <format>#define__cpp_lib_formatters202302L// also in <stacktrace>, <thread>#define__cpp_lib_forward_like202207L// also in <utility>#define__cpp_lib_gcd_lcm201606L// also in <numeric>#define__cpp_lib_generator202207L// also in <generator>#define__cpp_lib_generic_associative_lookup201304L// also in <map>, <set>#define__cpp_lib_generic_unordered_lookup201811L// also in <unordered_map>, <unordered_set>#define__cpp_lib_hardware_interference_size201703L// also in <new>#define__cpp_lib_has_unique_object_representations201606L// also in <type_traits>#define__cpp_lib_hypot201603L// also in <cmath>#define__cpp_lib_incomplete_container_elements201505L// also in <forward_list>, <list>, <vector>#define__cpp_lib_int_pow2202002L// also in <bit>#define__cpp_lib_integer_comparison_functions202002L// also in <utility>#define__cpp_lib_integer_sequence201304L// also in <utility>#define__cpp_lib_integral_constant_callable201304L// also in <type_traits>#define__cpp_lib_interpolate201902L// also in <cmath>, <numeric>#define__cpp_lib_invoke201411L// also in <functional>#define__cpp_lib_invoke_r202106L// also in <functional>#define__cpp_lib_ios_noreplace202207L// also in <ios>#define__cpp_lib_is_aggregate201703L// also in <type_traits>#define__cpp_lib_is_constant_evaluated201811L// also in <type_traits>#define__cpp_lib_is_final201402L// also in <type_traits>#define__cpp_lib_is_implicit_lifetime202302L// also in <type_traits>#define__cpp_lib_is_invocable201703L// also in <type_traits>#define__cpp_lib_is_layout_compatible201907L// also in <type_traits>#define__cpp_lib_is_nothrow_convertible201806L// also in <type_traits>#define__cpp_lib_is_null_pointer201309L// also in <type_traits>#define__cpp_lib_is_pointer_interconvertible201907L// also in <type_traits>#define__cpp_lib_is_scoped_enum202011L// also in <type_traits>#define__cpp_lib_is_swappable201603L// also in <type_traits>#define__cpp_lib_jthread201911L// also in <stop_token>, <thread>#define__cpp_lib_latch201907L// also in <latch>#define__cpp_lib_launder201606L// also in <new>#define__cpp_lib_list_remove_return_type201806L// also in <forward_list>, <list>#define__cpp_lib_logical_traits201510L// also in <type_traits>#define__cpp_lib_make_from_tuple201606L// also in <tuple>#define__cpp_lib_make_reverse_iterator201402L// also in <iterator>#define__cpp_lib_make_unique201304L// also in <memory>#define__cpp_lib_map_try_emplace201411L// also in <map>#define__cpp_lib_math_constants201907L// also in <numbers>#define__cpp_lib_math_special_functions201603L// also in <cmath>#define__cpp_lib_mdspan202207L// also in <mdspan>#define__cpp_lib_memory_resource201603L// also in <memory_resource>#define__cpp_lib_modules202207L#define__cpp_lib_move_iterator_concept202207L// also in <iterator>#define__cpp_lib_move_only_function202110L// also in <functional>#define__cpp_lib_node_extract201606L// also in <map>, <set>, <unordered_map>, <unordered_set>#define__cpp_lib_nonmember_container_access201411L// also in <array>, <deque>, <forward_list>, <iterator>, <list>, <map>, <regex>, <set>, <string>,// <unordered_map>, <unordered_set>, <vector>#define__cpp_lib_not_fn201603L// also in <functional>#define__cpp_lib_null_iterators201304L// also in <iterator>#define__cpp_lib_optional202110L// also in <optional>#define__cpp_lib_out_ptr202106L// also in <memory>#define__cpp_lib_parallel_algorithm201603L// also in <algorithm>, <numeric>#define__cpp_lib_polymorphic_allocator201902L// also in <memory_resource>#define__cpp_lib_print202207L// also in <print>, <ostream>#define__cpp_lib_quoted_string_io201304L// also in <iomanip>#define__cpp_lib_ranges202302L// also in <algorithm>, <functional>, <iterator>, <memory>, <ranges>#define__cpp_lib_ranges_as_const202207L// also in <ranges>#define__cpp_lib_ranges_as_rvalue202207L// also in <ranges>#define__cpp_lib_ranges_cartesian_product202207L// also in <ranges>#define__cpp_lib_ranges_chunk202202L// also in <ranges>#define__cpp_lib_ranges_chunk_by202202L// also in <ranges>#define__cpp_lib_ranges_contains202207L// also in <algorithm>#define__cpp_lib_ranges_enumerate202302L// also in <ranges>, <version>#define__cpp_lib_ranges_find_last202207L// also in <algorithm>#define__cpp_lib_ranges_fold202207L// also in <algorithm>#define__cpp_lib_ranges_iota202202L// also in <numeric>#define__cpp_lib_ranges_join_with202202L// also in <ranges>#define__cpp_lib_ranges_repeat202207L// also in <ranges>#define__cpp_lib_ranges_slide202202L// also in <ranges>#define__cpp_lib_ranges_starts_ends_with202106L// also in <algorithm>#define__cpp_lib_ranges_stride202207L// also in <ranges>#define__cpp_lib_ranges_to_container202202L// also in <ranges>#define__cpp_lib_ranges_zip202110L// also in <ranges>, <tuple>, <utility>#define__cpp_lib_raw_memory_algorithms201606L// also in <memory>#define__cpp_lib_reference_from_temporary202202L// also in <type_traits>#define__cpp_lib_remove_cvref201711L// also in <type_traits>#define__cpp_lib_result_of_sfinae201210L// also in <functional>, <type_traits>#define__cpp_lib_robust_nonmodifying_seq_ops201304L// also in <algorithm>#define__cpp_lib_sample201603L// also in <algorithm>#define__cpp_lib_scoped_lock201703L// also in <mutex>#define__cpp_lib_semaphore201907L// also in <semaphore>#define__cpp_lib_shared_mutex201505L// also in <shared_mutex>#define__cpp_lib_shared_ptr_arrays201707L// also in <memory>#define__cpp_lib_shared_ptr_weak_type201606L// also in <memory>#define__cpp_lib_shared_timed_mutex201402L// also in <shared_mutex>#define__cpp_lib_shift202202L// also in <algorithm>#define__cpp_lib_smart_ptr_for_overwrite202002L// also in <memory>#define__cpp_lib_source_location201907L// also in <source_location>#define__cpp_lib_span202002L// also in <span>#define__cpp_lib_spanstream202106L// also in <spanstream>#define__cpp_lib_ssize201902L// also in <iterator>#define__cpp_lib_stacktrace202011L// also in <stacktrace>#define__cpp_lib_start_lifetime_as202207L// also in <memory>#define__cpp_lib_starts_ends_with201711L// also in <string>, <string_view>#define__cpp_lib_stdatomic_h202011L// also in <stdatomic.h>#define__cpp_lib_string_contains202011L// also in <string>, <string_view>#define__cpp_lib_string_resize_and_overwrite202110L// also in <string>#define__cpp_lib_string_udls201304L// also in <string>#define__cpp_lib_string_view201803L// also in <string>, <string_view>#define__cpp_lib_syncbuf201803L// also in <syncstream>#define__cpp_lib_three_way_comparison201907L// also in <compare>#define__cpp_lib_to_address201711L// also in <memory>#define__cpp_lib_to_array201907L// also in <array>#define__cpp_lib_to_chars201611L// also in <charconv>#define__cpp_lib_to_underlying202102L// also in <utility>#define__cpp_lib_transformation_trait_aliases201304L// also in <type_traits>#define__cpp_lib_transparent_operators201510L// also in <memory>, <functional>#define__cpp_lib_tuple_element_t201402L// also in <tuple>#define__cpp_lib_tuple_like202207L// also in <utility>, <tuple>, <map>, <unordered_map>#define__cpp_lib_tuples_by_type201304L// also in <utility>, <tuple>#define__cpp_lib_type_identity201806L// also in <type_traits>#define__cpp_lib_type_trait_variable_templates201510L// also in <type_traits>#define__cpp_lib_uncaught_exceptions201411L// also in <exception>#define__cpp_lib_unordered_map_try_emplace201411L// also in <unordered_map>#define__cpp_lib_unreachable202202L// also in <utility>#define__cpp_lib_unwrap_ref201811L// also in <type_traits>#define__cpp_lib_variant202106L// also in <variant>#define__cpp_lib_void_t201411L// also in <type_traits>