Difference between revisions of "cpp/utility/feature test"
From cppreference.com
m (→See also: +Predefined Macro Symbols here too) |
m (+new C++26 FTMs: 185 → 213 (i.e. 28 new macros)) |
||
Line 3: | Line 3: | ||
Each of following macros is defined if the header {{header|version}} or one of the corresponding headers specified in the table is included. | Each of following macros is defined if the header {{header|version}} or one of the corresponding headers specified in the table is included. | ||
− | |||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
Line 49: | Line 48: | ||
| {{tt|__cpp_lib_associative_heterogeneous_erasure}} | | {{tt|__cpp_lib_associative_heterogeneous_erasure}} | ||
| 202110L | | 202110L | ||
+ | | {{header|map}} {{header|set}} {{header|unordered_map}} {{header|unordered_set}} | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_associative_heterogeneous_insertion}} | ||
+ | | 202306L | ||
| {{header|map}} {{header|set}} {{header|unordered_map}} {{header|unordered_set}} | | {{header|map}} {{header|set}} {{header|unordered_map}} {{header|unordered_set}} | ||
|- | |- | ||
Line 92: | Line 95: | ||
|- | |- | ||
| {{tt|__cpp_lib_bind_back}} | | {{tt|__cpp_lib_bind_back}} | ||
− | | | + | | 202306L |
| {{header|functional}} | | {{header|functional}} | ||
|- | |- | ||
| {{tt|__cpp_lib_bind_front}} | | {{tt|__cpp_lib_bind_front}} | ||
− | | | + | | 202306L |
| {{header|functional}} | | {{header|functional}} | ||
|- | |- | ||
Line 106: | Line 109: | ||
| 201907L | | 201907L | ||
| {{header|bit}} | | {{header|bit}} | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_bitset}} | ||
+ | | 202306L | ||
+ | | {{header|bitset}} | ||
|- | |- | ||
| {{tt|__cpp_lib_bool_constant}} | | {{tt|__cpp_lib_bool_constant}} | ||
Line 132: | Line 139: | ||
|- | |- | ||
| {{tt|__cpp_lib_chrono}} | | {{tt|__cpp_lib_chrono}} | ||
− | | | + | | 202306L |
| {{header|chrono}} | | {{header|chrono}} | ||
|- | |- | ||
Line 160: | Line 167: | ||
|- | |- | ||
| {{tt|__cpp_lib_constexpr_algorithms}} | | {{tt|__cpp_lib_constexpr_algorithms}} | ||
− | | | + | | 202306L |
| {{header|algorithm}} {{header|utility}} | | {{header|algorithm}} {{header|utility}} | ||
|- | |- | ||
Line 172: | Line 179: | ||
|- | |- | ||
| {{tt|__cpp_lib_constexpr_cmath}} | | {{tt|__cpp_lib_constexpr_cmath}} | ||
− | | | + | | 202306L |
| {{header|cmath}} {{header|cstdlib}} | | {{header|cmath}} {{header|cstdlib}} | ||
|- | |- | ||
Line 226: | Line 233: | ||
| 202202L | | 202202L | ||
| {{header|vector}} {{header|list}} {{header|forward_list}} {{header|map}} {{header|set}} {{header|unordered_map}} {{header|unordered_set}} {{header|deque}} {{header|queue}} {{header|stack}} {{header|string}} | | {{header|vector}} {{header|list}} {{header|forward_list}} {{header|map}} {{header|set}} {{header|unordered_map}} {{header|unordered_set}} {{header|deque}} {{header|queue}} {{header|stack}} {{header|string}} | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_copyable_function}} | ||
+ | | 202306L | ||
+ | | {{header|functional}} | ||
|- | |- | ||
| {{tt|__cpp_lib_coroutine}} | | {{tt|__cpp_lib_coroutine}} | ||
Line 272: | Line 283: | ||
|- | |- | ||
| {{tt|__cpp_lib_format}} | | {{tt|__cpp_lib_format}} | ||
− | | | + | | 202306L |
| {{header|format}} | | {{header|format}} | ||
|- | |- | ||
Line 286: | Line 297: | ||
| 202207L | | 202207L | ||
| {{header|utility}} | | {{header|utility}} | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_freestanding_char_traits}} | ||
+ | | 202306L | ||
+ | | {{header|string}} | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_freestanding_charconv}} | ||
+ | | 202306L | ||
+ | | {{header|charconv}} | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_freestanding_cstdlib}} | ||
+ | | 202306L | ||
+ | | {{header|cstdlib}} {{header|cmath}} | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_freestanding_cstring}} | ||
+ | | 202306L | ||
+ | | {{header|cstring}} | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_freestanding_cwchar}} | ||
+ | | 202306L | ||
+ | | {{header|cwchar}} | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_freestanding_errc}} | ||
+ | | 202306L | ||
+ | | {{header|cerrno}} {{header|system_error}} | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_freestanding_feature_test_macros}} | ||
+ | | 202306L | ||
+ | | | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_freestanding_functional}} | ||
+ | | 202306L | ||
+ | | {{header|functional}} | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_freestanding_iterator}} | ||
+ | | 202306L | ||
+ | | {{header|iterator}} | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_freestanding_memory}} | ||
+ | | 202306L | ||
+ | | {{header|memory}} | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_freestanding_ranges}} | ||
+ | | 202306L | ||
+ | | {{header|ranges}} | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_freestanding_ratio}} | ||
+ | | 202306L | ||
+ | | {{header|ratio}} | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_freestanding_tuple}} | ||
+ | | 202306L | ||
+ | | {{header|tuple}} | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_freestanding_utility}} | ||
+ | | 202306L | ||
+ | | {{header|utility}} | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_fstream_native_handle}} | ||
+ | | 202306L | ||
+ | | {{header|fstream}} | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_function_ref}} | ||
+ | | 202306L | ||
+ | | {{header|functional}} | ||
|- | |- | ||
| {{tt|__cpp_lib_gcd_lcm}} | | {{tt|__cpp_lib_gcd_lcm}} | ||
Line 310: | Line 385: | ||
| 201606L | | 201606L | ||
| {{header|type_traits}} | | {{header|type_traits}} | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_hazard_pointer}} | ||
+ | | 202306L | ||
+ | | {{header|hazard_pointer}} | ||
|- | |- | ||
| {{tt|__cpp_lib_hypot}} | | {{tt|__cpp_lib_hypot}} | ||
Line 393: | Line 472: | ||
| {{tt|__cpp_lib_is_swappable}} | | {{tt|__cpp_lib_is_swappable}} | ||
| 201603L | | 201603L | ||
+ | | {{header|type_traits}} | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_is_within_lifetime}} | ||
+ | | 202306L | ||
| {{header|type_traits}} | | {{header|type_traits}} | ||
|- | |- | ||
Line 468: | Line 551: | ||
|- | |- | ||
| {{tt|__cpp_lib_not_fn}} | | {{tt|__cpp_lib_not_fn}} | ||
− | | | + | | 202306L |
| {{header|functional}} | | {{header|functional}} | ||
|- | |- | ||
Line 529: | Line 612: | ||
| {{tt|__cpp_lib_ranges_enumerate}} | | {{tt|__cpp_lib_ranges_enumerate}} | ||
| 202302L | | 202302L | ||
− | | {{header|ranges}} | + | | {{header|ranges}} {{header|version}} |
|- | |- | ||
| {{tt|__cpp_lib_ranges_find_last}} | | {{tt|__cpp_lib_ranges_find_last}} | ||
Line 570: | Line 653: | ||
| 202110L | | 202110L | ||
| {{header|ranges}} {{header|tuple}} {{header|utility}} | | {{header|ranges}} {{header|tuple}} {{header|utility}} | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_ratio}} | ||
+ | | 202306L | ||
+ | | {{header|ratio}} | ||
|- | |- | ||
| {{tt|__cpp_lib_raw_memory_algorithms}} | | {{tt|__cpp_lib_raw_memory_algorithms}} | ||
| 201606L | | 201606L | ||
| {{header|memory}} | | {{header|memory}} | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_rcu}} | ||
+ | | 202306L | ||
+ | | {{header|rcu}} | ||
|- | |- | ||
| {{tt|__cpp_lib_reference_from_temporary}} | | {{tt|__cpp_lib_reference_from_temporary}} | ||
Line 622: | Line 713: | ||
| 202202L | | 202202L | ||
| {{header|algorithm}} | | {{header|algorithm}} | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_smart_ptr_owner_equality}} | ||
+ | | 202306L | ||
+ | | {{header|memory}} | ||
|- | |- | ||
| {{tt|__cpp_lib_smart_ptr_for_overwrite}} | | {{tt|__cpp_lib_smart_ptr_for_overwrite}} | ||
Line 642: | Line 737: | ||
| 201902L | | 201902L | ||
| {{header|iterator}} | | {{header|iterator}} | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_sstream_from_string_view}} | ||
+ | | 202306L | ||
+ | | {{header|sstream}} | ||
|- | |- | ||
| {{tt|__cpp_lib_stacktrace}} | | {{tt|__cpp_lib_stacktrace}} | ||
Line 674: | Line 773: | ||
| 201803L | | 201803L | ||
| {{header|string}} {{header|string_view}} | | {{header|string}} {{header|string_view}} | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_submdspan}} | ||
+ | | 202306L | ||
+ | | {{header|mdspan}} | ||
|- | |- | ||
| {{tt|__cpp_lib_syncbuf}} | | {{tt|__cpp_lib_syncbuf}} | ||
| 201803L | | 201803L | ||
| {{header|syncstream}} | | {{header|syncstream}} | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_text_encoding}} | ||
+ | | 202306L | ||
+ | | {{header|text_encoding}} | ||
|- | |- | ||
| {{tt|__cpp_lib_three_way_comparison}} | | {{tt|__cpp_lib_three_way_comparison}} | ||
Line 692: | Line 799: | ||
|- | |- | ||
| {{tt|__cpp_lib_to_chars}} | | {{tt|__cpp_lib_to_chars}} | ||
− | | | + | | 202306L |
| {{header|charconv}} | | {{header|charconv}} | ||
+ | |- | ||
+ | | {{tt|__cpp_lib_to_string}} | ||
+ | | 202306L | ||
+ | | {{header|string}} | ||
|- | |- | ||
| {{tt|__cpp_lib_to_underlying}} | | {{tt|__cpp_lib_to_underlying}} | ||
Line 744: | Line 855: | ||
|- | |- | ||
| {{tt|__cpp_lib_variant}} | | {{tt|__cpp_lib_variant}} | ||
− | | | + | | 202306L |
| {{header|variant}} | | {{header|variant}} | ||
|- | |- | ||
| {{tt|__cpp_lib_void_t}} | | {{tt|__cpp_lib_void_t}} | ||
− | | | + | | 202306L |
− | | {{header| | + | | {{header|version}} |
|- | |- | ||
− | ! colspan="3" | Total number of macros: | + | ! colspan="3" | Total number of macros: 213 |
|} | |} | ||
===Notes=== | ===Notes=== | ||
− | Each value in "Value" column follows the pattern: {{c|"yyyymmL"}}, where {{c|"yyyy"}} is a year, and {{c|"mm"}} is a month when the corresponding feature-set was accepted for standardization. Some values where increased since the time of their introduction, if capabilities of given feature where extended. The table above contains only the most recent values (that is, taken from the latest C++ language draft standard). A full set of values, including the initial and intermediate ones, can be found in [[cpp/ | + | Each value in "Value" column follows the pattern: {{c|"yyyymmL"}}, where {{c|"yyyy"}} is a year, and {{c|"mm"}} is a month when the corresponding feature-set was accepted for standardization. Some values where increased since the time of their introduction, if capabilities of given feature where extended. The table above contains only the most recent values (that is, taken from the latest C++ language draft standard). A full set of values, including the initial and intermediate ones, can be found in [[cpp/feature test#Library features|this table]]. |
===See also=== | ===See also=== |
Revision as of 15:58, 31 August 2023
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_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> |
Total number of macros: 213 |
Notes
Each value in "Value" column follows the pattern: "yyyymmL", where "yyyy" is a year, and "mm" is a month when the corresponding feature-set was accepted for standardization. Some values where increased since the time of their introduction, if capabilities of given feature where extended. The table above contains only the most recent values (that is, taken from the latest C++ language draft standard). A full set of values, including the initial and intermediate ones, can be found in this table.
See also
Feature testing (C++20) | A set of preprocessor macros to test the corresponding to C++ language and library features |
C++ documentation for Predefined Macro Symbols
|