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> |