Library feature-test macros (C++20)
Each of following macros is defined if the header <version> or one of the corresponding headers specified in the table is included.
| Macro name | Value | Header | 
|---|---|---|
| __cpp_lib_addressof_constexpr | 201603L | <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_any | 201606L | <any> | 
| __cpp_lib_apply | 201603L | <tuple> | 
| __cpp_lib_array_constexpr | 201603L | <iterator><array> | 
| __cpp_lib_as_const | 201510L | <utility> | 
| __cpp_lib_atomic_is_always_lock_free | 201603L | <atomic> | 
| __cpp_lib_atomic_ref | 201806L | <atomic> | 
| __cpp_lib_bit_cast | 201806L | <bit> | 
| __cpp_lib_bind_front | 201811L | <functional> | 
| __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_char8_t | 201811L | <atomic><filesystem><istream><limits><locale><ostream><string><string_view> | 
| __cpp_lib_chrono | 201611L | <chrono> | 
| __cpp_lib_clamp | 201603L | <algorithm> | 
| __cpp_lib_complex_udls | 201309L | <complex> | 
| __cpp_lib_concepts | 201806L | <concepts> | 
| __cpp_lib_constexpr_misc | 201811L | <array><functional><iterator><string_view><tuple><utility> | 
| __cpp_lib_constexpr_swap_algorithms | 201806L | <algorithm> | 
| __cpp_lib_enable_shared_from_this | 201603L | <memory> | 
| __cpp_lib_erase_if | 201811L | <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_filesystem | 201703L | <filesystem> | 
| __cpp_lib_gcd_lcm | 201606L | <numeric> | 
| __cpp_lib_generic_associative_lookup | 201304L | <map><set> | 
| __cpp_lib_generic_unordered_lookup | 201811L | <unordered_map><unordered_set> | 
| __cpp_lib_generic_unordered_hash_lookup | 201902L | <unordered_map><unordered_set> | 
| __cpp_lib_hardware_interference_size | 201703L | <new> | 
| __cpp_lib_has_unique_object_representations | 201606L | <type_traits> | 
| __cpp_lib_hypot | 201603L | <cmath> | 
| __cpp_lib_incomplete_container_elements | 201505L | <forward_list><list><vector> | 
| __cpp_lib_integer_sequence | 201304L | <utility> | 
| __cpp_lib_integral_constant_callable | 201304L | <type_traits> | 
| __cpp_lib_invoke | 201411L | <functional> | 
| __cpp_lib_interpolate | 201902L | <cmath><numeric> | 
| __cpp_lib_is_constant_evaluated | 201811L | <type_traits> | 
| __cpp_lib_is_aggregate | 201703L | <type_traits> | 
| __cpp_lib_is_final | 201402L | <type_traits> | 
| __cpp_lib_is_invocable | 201703L | <type_traits> | 
| __cpp_lib_is_null_pointer | 201309L | <type_traits> | 
| __cpp_lib_is_swappable | 201603L | <type_traits> | 
| __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_special_functions | 201603L | <cmath> | 
| __cpp_lib_memory_resource | 201603L | <memory_resource> | 
| __cpp_lib_node_extract | 201606L | <map><set><unordered_map><unordered_set> | 
| __cpp_lib_nonmember_container_access | 201411L | <iterator><array><deque><forward_list><list><map><regex><set><string><unordered_map><unordered_set><vector> | 
| __cpp_lib_not_fn | 201603L | <functional> | 
| __cpp_lib_null_iterators | 201304L | <iterator> | 
| __cpp_lib_optional | 201606L | <optional> | 
| __cpp_lib_parallel_algorithm | 201603L | <algorithm><numeric> | 
| __cpp_lib_quoted_string_io | 201304L | <iomanip> | 
| __cpp_lib_ranges | 201811L | <algorithm><functional><iterator><memory><ranges> | 
| __cpp_lib_raw_memory_algorithms | 201606L | <memory> | 
| __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_shared_mutex | 201505L | <shared_mutex> | 
| __cpp_lib_shared_ptr_arrays | 201611L | <memory> | 
| __cpp_lib_shared_ptr_weak_type | 201606L | <memory> | 
| __cpp_lib_shared_timed_mutex | 201402L | <shared_mutex> | 
| __cpp_lib_string_udls | 201304L | <string> | 
| __cpp_lib_string_view | 201606L | <string><string_view> | 
| __cpp_lib_three_way_comparison | 201711L | <compare> | 
| __cpp_lib_to_chars | 201611L | <utility> | 
| __cpp_lib_transformation_trait_aliases | 201304L | <type_traits> | 
| __cpp_lib_transparent_operators | 201510L | <memory><functional> | 
| __cpp_lib_tuple_element_t | 201402L | <tuple> | 
| __cpp_lib_tuples_by_type | 201304L | <utility><tuple> | 
| __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_variant | 201606L | <variant> | 
| __cpp_lib_void_t | 201411L | <type_traits> | 
    © cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
    http://en.cppreference.com/w/cpp/utility/feature_test