Library feature-test macros (C++20)
From cppreference.com
                    
                                        
                    
                    
                                                            
                    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> |