mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-19 00:56:41 +00:00
[libc++] Update status after the Kona meeting. (#72421)
This updates: - The status tables - Feature test macros (including previously missing ones) - New headers for modules
This commit is contained in:
parent
255ea48608
commit
f49ccca86a
@ -236,6 +236,8 @@ Status
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_format`` *unimplemented*
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_format_uchar`` *unimplemented*
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_generic_unordered_lookup`` ``201811L``
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_int_pow2`` ``202002L``
|
||||
@ -342,6 +344,8 @@ Status
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_print`` *unimplemented*
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_ranges_as_const`` *unimplemented*
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_ranges_as_rvalue`` ``202207L``
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_ranges_chunk`` *unimplemented*
|
||||
@ -378,6 +382,8 @@ Status
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_to_underlying`` ``202102L``
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_tuple_like`` *unimplemented*
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_unreachable`` ``202202L``
|
||||
--------------------------------------------------- -----------------
|
||||
**C++ 26**
|
||||
@ -392,18 +398,44 @@ Status
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_copyable_function`` *unimplemented*
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_debugging`` *unimplemented*
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_freestanding_algorithm`` *unimplemented*
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_freestanding_array`` *unimplemented*
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_freestanding_cstring`` *unimplemented*
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_freestanding_expected`` *unimplemented*
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_freestanding_mdspan`` *unimplemented*
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_freestanding_optional`` *unimplemented*
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_freestanding_string_view`` *unimplemented*
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_freestanding_variant`` *unimplemented*
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_fstream_native_handle`` *unimplemented*
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_function_ref`` *unimplemented*
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_hazard_pointer`` *unimplemented*
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_linalg`` *unimplemented*
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_out_ptr`` *unimplemented*
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_ratio`` ``202306L``
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_rcu`` *unimplemented*
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_saturation_arithmetic`` *unimplemented*
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_smart_ptr_owner_equality`` *unimplemented*
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_span_initializer_list`` *unimplemented*
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_sstream_from_string_view`` *unimplemented*
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_submdspan`` *unimplemented*
|
||||
@ -412,6 +444,8 @@ Status
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_to_chars`` *unimplemented*
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_tuple_like`` *unimplemented*
|
||||
--------------------------------------------------- -----------------
|
||||
``__cpp_lib_within_lifetime`` *unimplemented*
|
||||
=================================================== =================
|
||||
|
||||
|
@ -23,6 +23,7 @@
|
||||
.spaceship { background-color: #B0E0E6; }
|
||||
.fc { background-color: #8EAF63; white-space:nowrap; }
|
||||
.concurrency { background-color: #909090; white-space:nowrap; }
|
||||
.dr { background-color: #FFFF99; }
|
||||
</style>
|
||||
|
||||
.. role:: notstarted
|
||||
@ -45,6 +46,7 @@
|
||||
.. role:: spaceship
|
||||
.. role:: fc
|
||||
.. role:: concurrency
|
||||
.. role:: dr
|
||||
|
||||
.. |chrono| replace:: :chrono:`chrono`
|
||||
.. |format| replace:: :format:`format`
|
||||
@ -52,6 +54,7 @@
|
||||
.. |spaceship| replace:: :spaceship:`spaceship`
|
||||
.. |flat_containers| replace:: :fc:`flat containers`
|
||||
.. |concurrency TS| replace:: :concurrency:`concurrency TS`
|
||||
.. |DR| replace:: :dr:`Defect Report`
|
||||
|
||||
.. |sect| unicode:: U+00A7
|
||||
.. |hellip| unicode:: U+2026
|
||||
|
@ -17,6 +17,28 @@
|
||||
"`3938 <https://wg21.link/LWG3938>`__","Cannot use ``std::expected`` monadic ops with move-only ``error_type``","Varna June 2023","|Complete|","18.0",""
|
||||
"`3940 <https://wg21.link/LWG3940>`__","``std::expected<void, E>::value()`` also needs ``E`` to be copy constructible","Varna June 2023","","",""
|
||||
"","","","","",""
|
||||
"`3343 <https://wg21.link/LWG3343>`__","Ordering of calls to ``unlock()`` and ``notify_all()`` in Effects element of ``notify_all_at_thread_exit()`` should be reversed","Not Yet Adopted","|Complete|","16.0",""
|
||||
"`3892 <https://wg21.link/LWG3892>`__","Incorrect formatting of nested ranges and tuples","Not Yet Adopted","|Complete|","17.0","|format|"
|
||||
"`2392 <https://wg21.link/LWG2392>`__","""character type"" is used but not defined","Kona November 2023","","",""
|
||||
"`3203 <https://wg21.link/LWG3203>`__","``span`` element access invalidation","Kona November 2023","","",""
|
||||
"`3305 <https://wg21.link/LWG3305>`__","``any_cast<void>``","Kona November 2023","","",""
|
||||
"`3431 <https://wg21.link/LWG3431>`__","``<=>`` for containers should require ``three_way_comparable<T>`` instead of ``<=>``","Kona November 2023","","",""
|
||||
"`3749 <https://wg21.link/LWG3749>`__","``common_iterator`` should handle integer-class difference types","Kona November 2023","","",""
|
||||
"`3809 <https://wg21.link/LWG3809>`__","Is ``std::subtract_with_carry_engine<uint16_t>`` supposed to work","Kona November 2023","","",""
|
||||
"`3892 <https://wg21.link/LWG3892>`__","Incorrect formatting of nested ranges and tuples","Kona November 2023","|Complete|","17.0","|format|"
|
||||
"`3897 <https://wg21.link/LWG3897>`__","``inout_ptr`` will not update raw pointer to 0","Kona November 2023","","",""
|
||||
"`3946 <https://wg21.link/LWG3946>`__","The definition of ``const_iterator_t`` should be reworked","Kona November 2023","","",""
|
||||
"`3947 <https://wg21.link/LWG3947>`__","Unexpected constraints on ``adjacent_transform_view::base()``","Kona November 2023","","","|ranges|"
|
||||
"`3948 <https://wg21.link/LWG3948>`__","``possibly-const-range and as-const-pointer`` should be ``noexcept``","Kona November 2023","","","|ranges|"
|
||||
"`3949 <https://wg21.link/LWG3949>`__","``std::atomic<bool>``'s trivial destructor dropped in C++17 spec wording","Kona November 2023","","",""
|
||||
"`3951 <https://wg21.link/LWG3951>`__","[expected.object.swap]: Using ``value()`` instead of ``has_value()``","Kona November 2023","","",""
|
||||
"`3953 <https://wg21.link/LWG3953>`__","``iter_move`` for ``common_iterator`` and ``counted_iterator`` should return ``decltype(auto)``","Kona November 2023","","","|ranges|"
|
||||
"`3957 <https://wg21.link/LWG3957>`__","[container.alloc.reqmts] The value category of v should be claimed","Kona November 2023","","",""
|
||||
"`3965 <https://wg21.link/LWG3965>`__","Incorrect example in [format.string.escaped] p3 for formatting of combining characters","Kona November 2023","","","|format|"
|
||||
"`3970 <https://wg21.link/LWG3970>`__","[mdspan.syn] Missing definition of ``full_extent_t`` and ``full_extent``","Kona November 2023","","",""
|
||||
"`3973 <https://wg21.link/LWG3973>`__","Monadic operations should be ADL-proof","Kona November 2023","","",""
|
||||
"`3974 <https://wg21.link/LWG3974>`__","``mdspan::operator[]`` should not copy ``OtherIndexTypes``","Kona November 2023","","",""
|
||||
"`3987 <https://wg21.link/LWG3987>`__","Including ``<flat_foo>`` doesn't provide ``std::begin``/``end``","Kona November 2023","","","|flat_containers|"
|
||||
"`3990 <https://wg21.link/LWG3990>`__","Program-defined specializations of ``std::tuple`` and ``std::variant`` can't be properly supported","Kona November 2023","","",""
|
||||
"`4001 <https://wg21.link/LWG4001>`__","``iota_view`` should provide ``empty``","Kona November 2023","","","|ranges|"
|
||||
"","","","","",""
|
||||
"`3343 <https://wg21.link/LWG3343>`__","Ordering of calls to ``unlock()`` and ``notify_all()`` in Effects element of ``notify_all_at_thread_exit()`` should be reversed","Not Yet Adopted","|Complete|","16.0",""
|
||||
"","","","","",""
|
||||
|
|
@ -27,3 +27,22 @@
|
||||
"`P2714R1 <https://wg21.link/P2714R1>`__","LWG","Bind front and back to NTTP callables","Varna June 2023","","",""
|
||||
"`P2630R4 <https://wg21.link/P2630R4>`__","LWG","``submdspan``","Varna June 2023","","",""
|
||||
"","","","","","",""
|
||||
"`P0543R3 <https://wg21.link/P0543R3>`__","LWG","Saturation arithmetic","Kona November 2023","","",""
|
||||
"`P2407R5 <https://wg21.link/P2407R5>`__","LWG","Freestanding Library: Partial Classes","Kona November 2023","","",""
|
||||
"`P2546R5 <https://wg21.link/P2546R5>`__","LWG","Debugging Support","Kona November 2023","","",""
|
||||
"`P2905R2 <https://wg21.link/P2905R2>`__","LWG","Runtime format strings","Kona November 2023","","","|format| |DR|"
|
||||
"`P2918R2 <https://wg21.link/P2918R2>`__","LWG","Runtime format strings II","Kona November 2023","","","|format|"
|
||||
"`P2909R4 <https://wg21.link/P2909R4>`__","LWG","Fix formatting of code units as integers (Dude, where’s my ``char``?)","Kona November 2023","","","|format| |DR|"
|
||||
"`P0952R2 <https://wg21.link/P0952R2>`__","LWG","A new specification for ``std::generate_canonical``","Kona November 2023","","",""
|
||||
"`P2447R6 <https://wg21.link/P2447R6>`__","LWG","``std::span`` over an initializer list","Kona November 2023","","",""
|
||||
"`P2821R5 <https://wg21.link/P2821R5>`__","LWG","``span.at()``","Kona November 2023","","",""
|
||||
"`P2868R3 <https://wg21.link/P2868R3>`__","LWG","Remove Deprecated ``std::allocator`` Typedef From C++26","Kona November 2023","","",""
|
||||
"`P2870R3 <https://wg21.link/P2870R3>`__","LWG","Remove ``basic_string::reserve()`` From C++26","Kona November 2023","","",""
|
||||
"`P2871R3 <https://wg21.link/P2871R3>`__","LWG","Remove Deprecated Unicode Conversion Facets from C++26","Kona November 2023","","",""
|
||||
"`P2819R2 <https://wg21.link/P2819R2>`__","LWG","Add tuple protocol to complex","Kona November 2023","","",""
|
||||
"`P2937R0 <https://wg21.link/P2937R0>`__","LWG","Freestanding: Remove ``strtok``","Kona November 2023","","",""
|
||||
"`P2833R2 <https://wg21.link/P2833R2>`__","LWG","Freestanding Library: inout expected span","Kona November 2023","","",""
|
||||
"`P2836R1 <https://wg21.link/P2836R1>`__","LWG","``std::basic_const_iterator`` should follow its underlying type's convertibility","Kona November 2023","","","|DR|"
|
||||
"`P2264R7 <https://wg21.link/P2264R7>`__","LWG","Make ``assert()`` macro user friendly for C and C++","Kona November 2023","","",""
|
||||
"`P1673R13 <https://wg21.link/P1673R13>`__","LWG","A free function linear algebra interface based on the BLAS","Kona November 2023","","",""
|
||||
"","","","","","",""
|
||||
|
|
@ -79,6 +79,7 @@ __cpp_lib_constexpr_utility 201811L <utility>
|
||||
__cpp_lib_constexpr_vector 201907L <vector>
|
||||
__cpp_lib_copyable_function 202306L <functional>
|
||||
__cpp_lib_coroutine 201902L <coroutine>
|
||||
__cpp_lib_debugging 202311L <debugging>
|
||||
__cpp_lib_destroying_delete 201806L <new>
|
||||
__cpp_lib_enable_shared_from_this 201603L <memory>
|
||||
__cpp_lib_endian 201907L <bit>
|
||||
@ -92,8 +93,17 @@ __cpp_lib_expected 202211L <expected>
|
||||
__cpp_lib_filesystem 201703L <filesystem>
|
||||
__cpp_lib_format 202106L <format>
|
||||
__cpp_lib_format_ranges 202207L <format>
|
||||
__cpp_lib_format_uchar 202311L <>
|
||||
__cpp_lib_formatters 202302L <stacktrace> <thread>
|
||||
__cpp_lib_forward_like 202207L <utility>
|
||||
__cpp_lib_freestanding_algorithm 202311L <algorithm>
|
||||
__cpp_lib_freestanding_array 202311L <array>
|
||||
__cpp_lib_freestanding_cstring 202306L <cstring>
|
||||
__cpp_lib_freestanding_expected 202311L <expected>
|
||||
__cpp_lib_freestanding_mdspan 202311L <mdspan>
|
||||
__cpp_lib_freestanding_optional 202311L <optional>
|
||||
__cpp_lib_freestanding_string_view 202311L <string_view>
|
||||
__cpp_lib_freestanding_variant 202311L <variant>
|
||||
__cpp_lib_fstream_native_handle 202306L <fstream>
|
||||
__cpp_lib_function_ref 202306L <functional>
|
||||
__cpp_lib_gcd_lcm 201606L <numeric>
|
||||
@ -124,6 +134,7 @@ __cpp_lib_is_swappable 201603L <type_traits>
|
||||
__cpp_lib_jthread 201911L <stop_token> <thread>
|
||||
__cpp_lib_latch 201907L <latch>
|
||||
__cpp_lib_launder 201606L <new>
|
||||
__cpp_lib_linalg 202311L <linalg>
|
||||
__cpp_lib_list_remove_return_type 201806L <forward_list> <list>
|
||||
__cpp_lib_logical_traits 201510L <type_traits>
|
||||
__cpp_lib_make_from_tuple 201606L <tuple>
|
||||
@ -146,13 +157,15 @@ __cpp_lib_not_fn 201603L <functional>
|
||||
__cpp_lib_null_iterators 201304L <iterator>
|
||||
__cpp_lib_optional 202110L <optional>
|
||||
201606L // C++17
|
||||
__cpp_lib_out_ptr 202106L <memory>
|
||||
__cpp_lib_out_ptr 202311L <memory>
|
||||
202106L // C++23
|
||||
__cpp_lib_parallel_algorithm 201603L <algorithm> <numeric>
|
||||
__cpp_lib_polymorphic_allocator 201902L <memory_resource>
|
||||
__cpp_lib_print 202207L <ostream> <print>
|
||||
__cpp_lib_quoted_string_io 201304L <iomanip>
|
||||
__cpp_lib_ranges 202207L <algorithm> <functional> <iterator>
|
||||
<memory> <ranges>
|
||||
__cpp_lib_ranges_as_const 202207L <ranges>
|
||||
__cpp_lib_ranges_as_rvalue 202207L <ranges>
|
||||
__cpp_lib_ranges_chunk 202202L <ranges>
|
||||
__cpp_lib_ranges_chunk_by 202202L <ranges>
|
||||
@ -174,6 +187,7 @@ __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_saturation_arithmetic 202311L <>
|
||||
__cpp_lib_scoped_lock 201703L <mutex>
|
||||
__cpp_lib_semaphore 201907L <semaphore>
|
||||
__cpp_lib_shared_mutex 201505L <shared_mutex>
|
||||
@ -186,6 +200,7 @@ __cpp_lib_smart_ptr_for_overwrite 202002L <memory>
|
||||
__cpp_lib_smart_ptr_owner_equality 202306L <memory>
|
||||
__cpp_lib_source_location 201907L <source_location>
|
||||
__cpp_lib_span 202002L <span>
|
||||
__cpp_lib_span_initializer_list 202311L <span>
|
||||
__cpp_lib_spanstream 202106L <spanstream>
|
||||
__cpp_lib_ssize 201902L <iterator>
|
||||
__cpp_lib_sstream_from_string_view 202306L <sstream>
|
||||
@ -211,6 +226,9 @@ __cpp_lib_transformation_trait_aliases 201304L <type_traits>
|
||||
__cpp_lib_transparent_operators 201510L <functional> <memory>
|
||||
201210L // C++14
|
||||
__cpp_lib_tuple_element_t 201402L <tuple>
|
||||
__cpp_lib_tuple_like 202311L <map> <tuple> <unordered_map>
|
||||
<utility>
|
||||
202207L // C++23
|
||||
__cpp_lib_tuples_by_type 201304L <tuple> <utility>
|
||||
__cpp_lib_type_identity 201806L <type_traits>
|
||||
__cpp_lib_type_trait_variable_templates 201510L <type_traits>
|
||||
@ -364,6 +382,7 @@ __cpp_lib_within_lifetime 202306L <type_traits>
|
||||
# undef __cpp_lib_execution
|
||||
// # define __cpp_lib_execution 201902L
|
||||
// # define __cpp_lib_format 202106L
|
||||
// # define __cpp_lib_format_uchar 202311L
|
||||
# define __cpp_lib_generic_unordered_lookup 201811L
|
||||
# define __cpp_lib_int_pow2 202002L
|
||||
# define __cpp_lib_integer_comparison_functions 202002L
|
||||
@ -435,6 +454,7 @@ __cpp_lib_within_lifetime 202306L <type_traits>
|
||||
# define __cpp_lib_optional 202110L
|
||||
// # define __cpp_lib_out_ptr 202106L
|
||||
// # define __cpp_lib_print 202207L
|
||||
// # define __cpp_lib_ranges_as_const 202207L
|
||||
# define __cpp_lib_ranges_as_rvalue 202207L
|
||||
// # define __cpp_lib_ranges_chunk 202202L
|
||||
# define __cpp_lib_ranges_chunk_by 202202L
|
||||
@ -453,6 +473,7 @@ __cpp_lib_within_lifetime 202306L <type_traits>
|
||||
# define __cpp_lib_string_resize_and_overwrite 202110L
|
||||
// # define __cpp_lib_to_string 202306L
|
||||
# define __cpp_lib_to_underlying 202102L
|
||||
// # define __cpp_lib_tuple_like 202207L
|
||||
# define __cpp_lib_unreachable 202202L
|
||||
#endif
|
||||
|
||||
@ -464,17 +485,33 @@ __cpp_lib_within_lifetime 202306L <type_traits>
|
||||
# define __cpp_lib_bind_front 202306L
|
||||
# define __cpp_lib_bitset 202306L
|
||||
// # define __cpp_lib_copyable_function 202306L
|
||||
// # define __cpp_lib_debugging 202311L
|
||||
// # define __cpp_lib_freestanding_algorithm 202311L
|
||||
// # define __cpp_lib_freestanding_array 202311L
|
||||
// # define __cpp_lib_freestanding_cstring 202306L
|
||||
// # define __cpp_lib_freestanding_expected 202311L
|
||||
// # define __cpp_lib_freestanding_mdspan 202311L
|
||||
// # define __cpp_lib_freestanding_optional 202311L
|
||||
// # define __cpp_lib_freestanding_string_view 202311L
|
||||
// # define __cpp_lib_freestanding_variant 202311L
|
||||
// # define __cpp_lib_fstream_native_handle 202306L
|
||||
// # define __cpp_lib_function_ref 202306L
|
||||
// # define __cpp_lib_hazard_pointer 202306L
|
||||
// # define __cpp_lib_linalg 202311L
|
||||
# undef __cpp_lib_out_ptr
|
||||
// # define __cpp_lib_out_ptr 202311L
|
||||
# define __cpp_lib_ratio 202306L
|
||||
// # define __cpp_lib_rcu 202306L
|
||||
// # define __cpp_lib_saturation_arithmetic 202311L
|
||||
// # define __cpp_lib_smart_ptr_owner_equality 202306L
|
||||
// # define __cpp_lib_span_initializer_list 202311L
|
||||
// # define __cpp_lib_sstream_from_string_view 202306L
|
||||
// # define __cpp_lib_submdspan 202306L
|
||||
// # define __cpp_lib_text_encoding 202306L
|
||||
# undef __cpp_lib_to_chars
|
||||
// # define __cpp_lib_to_chars 202306L
|
||||
# undef __cpp_lib_tuple_like
|
||||
// # define __cpp_lib_tuple_like 202311L
|
||||
// # define __cpp_lib_within_lifetime 202306L
|
||||
#endif
|
||||
|
||||
|
@ -168,6 +168,9 @@ module;
|
||||
#include <version>
|
||||
|
||||
// *** Headers not yet available ***
|
||||
#if __has_include(<debugging>)
|
||||
# error "update the header information for <debugging> in libcxx/utils/generate_std_cppm_in.py"
|
||||
#endif // __has_include(<debugging>)
|
||||
#if __has_include(<flat_map>)
|
||||
# error "update the header information for <flat_map> in libcxx/utils/generate_std_cppm_in.py"
|
||||
#endif // __has_include(<flat_map>)
|
||||
@ -180,6 +183,9 @@ module;
|
||||
#if __has_include(<hazard_pointer>)
|
||||
# error "update the header information for <hazard_pointer> in libcxx/utils/generate_std_cppm_in.py"
|
||||
#endif // __has_include(<hazard_pointer>)
|
||||
#if __has_include(<linalg>)
|
||||
# error "update the header information for <linalg> in libcxx/utils/generate_std_cppm_in.py"
|
||||
#endif // __has_include(<linalg>)
|
||||
#if __has_include(<rcu>)
|
||||
# error "update the header information for <rcu> in libcxx/utils/generate_std_cppm_in.py"
|
||||
#endif // __has_include(<rcu>)
|
||||
|
@ -0,0 +1,123 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// WARNING: This test was generated by generate_feature_test_macro_components.py
|
||||
// and should not be edited manually.
|
||||
//
|
||||
// clang-format off
|
||||
|
||||
// <>
|
||||
|
||||
// Test the feature test macros defined by <>
|
||||
|
||||
/* Constant Value
|
||||
__cpp_lib_format_uchar 202311L [C++20]
|
||||
__cpp_lib_saturation_arithmetic 202311L [C++26]
|
||||
*/
|
||||
|
||||
#include <>
|
||||
#include "test_macros.h"
|
||||
|
||||
#if TEST_STD_VER < 14
|
||||
|
||||
# ifdef __cpp_lib_format_uchar
|
||||
# error "__cpp_lib_format_uchar should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_saturation_arithmetic
|
||||
# error "__cpp_lib_saturation_arithmetic should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER == 14
|
||||
|
||||
# ifdef __cpp_lib_format_uchar
|
||||
# error "__cpp_lib_format_uchar should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_saturation_arithmetic
|
||||
# error "__cpp_lib_saturation_arithmetic should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER == 17
|
||||
|
||||
# ifdef __cpp_lib_format_uchar
|
||||
# error "__cpp_lib_format_uchar should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_saturation_arithmetic
|
||||
# error "__cpp_lib_saturation_arithmetic should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER == 20
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_format_uchar
|
||||
# error "__cpp_lib_format_uchar should be defined in c++20"
|
||||
# endif
|
||||
# if __cpp_lib_format_uchar != 202311L
|
||||
# error "__cpp_lib_format_uchar should have the value 202311L in c++20"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_format_uchar
|
||||
# error "__cpp_lib_format_uchar should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_saturation_arithmetic
|
||||
# error "__cpp_lib_saturation_arithmetic should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER == 23
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_format_uchar
|
||||
# error "__cpp_lib_format_uchar should be defined in c++23"
|
||||
# endif
|
||||
# if __cpp_lib_format_uchar != 202311L
|
||||
# error "__cpp_lib_format_uchar should have the value 202311L in c++23"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_format_uchar
|
||||
# error "__cpp_lib_format_uchar should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_saturation_arithmetic
|
||||
# error "__cpp_lib_saturation_arithmetic should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER > 23
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_format_uchar
|
||||
# error "__cpp_lib_format_uchar should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_format_uchar != 202311L
|
||||
# error "__cpp_lib_format_uchar should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_format_uchar
|
||||
# error "__cpp_lib_format_uchar should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_saturation_arithmetic
|
||||
# error "__cpp_lib_saturation_arithmetic should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_saturation_arithmetic != 202311L
|
||||
# error "__cpp_lib_saturation_arithmetic should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_saturation_arithmetic
|
||||
# error "__cpp_lib_saturation_arithmetic should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
#endif // TEST_STD_VER > 23
|
||||
|
@ -18,6 +18,7 @@
|
||||
/* Constant Value
|
||||
__cpp_lib_clamp 201603L [C++17]
|
||||
__cpp_lib_constexpr_algorithms 201806L [C++20]
|
||||
__cpp_lib_freestanding_algorithm 202311L [C++26]
|
||||
__cpp_lib_parallel_algorithm 201603L [C++17]
|
||||
__cpp_lib_ranges 202207L [C++20]
|
||||
__cpp_lib_ranges_starts_ends_with 202106L [C++23]
|
||||
@ -39,6 +40,10 @@
|
||||
# error "__cpp_lib_constexpr_algorithms should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_algorithm
|
||||
# error "__cpp_lib_freestanding_algorithm should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_parallel_algorithm
|
||||
# error "__cpp_lib_parallel_algorithm should not be defined before c++17"
|
||||
# endif
|
||||
@ -73,6 +78,10 @@
|
||||
# error "__cpp_lib_constexpr_algorithms should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_algorithm
|
||||
# error "__cpp_lib_freestanding_algorithm should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_parallel_algorithm
|
||||
# error "__cpp_lib_parallel_algorithm should not be defined before c++17"
|
||||
# endif
|
||||
@ -113,6 +122,10 @@
|
||||
# error "__cpp_lib_constexpr_algorithms should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_algorithm
|
||||
# error "__cpp_lib_freestanding_algorithm should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_parallel_algorithm
|
||||
# error "__cpp_lib_parallel_algorithm should be defined in c++17"
|
||||
@ -168,6 +181,10 @@
|
||||
# error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_algorithm
|
||||
# error "__cpp_lib_freestanding_algorithm should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_parallel_algorithm
|
||||
# error "__cpp_lib_parallel_algorithm should be defined in c++20"
|
||||
@ -229,6 +246,10 @@
|
||||
# error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_algorithm
|
||||
# error "__cpp_lib_freestanding_algorithm should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_parallel_algorithm
|
||||
# error "__cpp_lib_parallel_algorithm should be defined in c++23"
|
||||
@ -299,6 +320,19 @@
|
||||
# error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++26"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_freestanding_algorithm
|
||||
# error "__cpp_lib_freestanding_algorithm should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_freestanding_algorithm != 202311L
|
||||
# error "__cpp_lib_freestanding_algorithm should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_freestanding_algorithm
|
||||
# error "__cpp_lib_freestanding_algorithm should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_parallel_algorithm
|
||||
# error "__cpp_lib_parallel_algorithm should be defined in c++26"
|
||||
|
@ -18,6 +18,7 @@
|
||||
/* Constant Value
|
||||
__cpp_lib_array_constexpr 201603L [C++17]
|
||||
201811L [C++20]
|
||||
__cpp_lib_freestanding_array 202311L [C++26]
|
||||
__cpp_lib_nonmember_container_access 201411L [C++17]
|
||||
__cpp_lib_to_array 201907L [C++20]
|
||||
*/
|
||||
@ -31,6 +32,10 @@
|
||||
# error "__cpp_lib_array_constexpr should not be defined before c++17"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_array
|
||||
# error "__cpp_lib_freestanding_array should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_nonmember_container_access
|
||||
# error "__cpp_lib_nonmember_container_access should not be defined before c++17"
|
||||
# endif
|
||||
@ -45,6 +50,10 @@
|
||||
# error "__cpp_lib_array_constexpr should not be defined before c++17"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_array
|
||||
# error "__cpp_lib_freestanding_array should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_nonmember_container_access
|
||||
# error "__cpp_lib_nonmember_container_access should not be defined before c++17"
|
||||
# endif
|
||||
@ -62,6 +71,10 @@
|
||||
# error "__cpp_lib_array_constexpr should have the value 201603L in c++17"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_array
|
||||
# error "__cpp_lib_freestanding_array should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_nonmember_container_access
|
||||
# error "__cpp_lib_nonmember_container_access should be defined in c++17"
|
||||
# endif
|
||||
@ -82,6 +95,10 @@
|
||||
# error "__cpp_lib_array_constexpr should have the value 201811L in c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_array
|
||||
# error "__cpp_lib_freestanding_array should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_nonmember_container_access
|
||||
# error "__cpp_lib_nonmember_container_access should be defined in c++20"
|
||||
# endif
|
||||
@ -105,6 +122,10 @@
|
||||
# error "__cpp_lib_array_constexpr should have the value 201811L in c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_array
|
||||
# error "__cpp_lib_freestanding_array should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_nonmember_container_access
|
||||
# error "__cpp_lib_nonmember_container_access should be defined in c++23"
|
||||
# endif
|
||||
@ -128,6 +149,19 @@
|
||||
# error "__cpp_lib_array_constexpr should have the value 201811L in c++26"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_freestanding_array
|
||||
# error "__cpp_lib_freestanding_array should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_freestanding_array != 202311L
|
||||
# error "__cpp_lib_freestanding_array should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_freestanding_array
|
||||
# error "__cpp_lib_freestanding_array should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_nonmember_container_access
|
||||
# error "__cpp_lib_nonmember_container_access should be defined in c++26"
|
||||
# endif
|
||||
|
@ -0,0 +1,71 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// WARNING: This test was generated by generate_feature_test_macro_components.py
|
||||
// and should not be edited manually.
|
||||
//
|
||||
// clang-format off
|
||||
|
||||
// <cstring>
|
||||
|
||||
// Test the feature test macros defined by <cstring>
|
||||
|
||||
/* Constant Value
|
||||
__cpp_lib_freestanding_cstring 202306L [C++26]
|
||||
*/
|
||||
|
||||
#include <cstring>
|
||||
#include "test_macros.h"
|
||||
|
||||
#if TEST_STD_VER < 14
|
||||
|
||||
# ifdef __cpp_lib_freestanding_cstring
|
||||
# error "__cpp_lib_freestanding_cstring should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER == 14
|
||||
|
||||
# ifdef __cpp_lib_freestanding_cstring
|
||||
# error "__cpp_lib_freestanding_cstring should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER == 17
|
||||
|
||||
# ifdef __cpp_lib_freestanding_cstring
|
||||
# error "__cpp_lib_freestanding_cstring should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER == 20
|
||||
|
||||
# ifdef __cpp_lib_freestanding_cstring
|
||||
# error "__cpp_lib_freestanding_cstring should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER == 23
|
||||
|
||||
# ifdef __cpp_lib_freestanding_cstring
|
||||
# error "__cpp_lib_freestanding_cstring should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER > 23
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_freestanding_cstring
|
||||
# error "__cpp_lib_freestanding_cstring should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_freestanding_cstring != 202306L
|
||||
# error "__cpp_lib_freestanding_cstring should have the value 202306L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_freestanding_cstring
|
||||
# error "__cpp_lib_freestanding_cstring should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
#endif // TEST_STD_VER > 23
|
||||
|
@ -15,8 +15,9 @@
|
||||
|
||||
// Test the feature test macros defined by <expected>
|
||||
|
||||
/* Constant Value
|
||||
__cpp_lib_expected 202211L [C++23]
|
||||
/* Constant Value
|
||||
__cpp_lib_expected 202211L [C++23]
|
||||
__cpp_lib_freestanding_expected 202311L [C++26]
|
||||
*/
|
||||
|
||||
#include <expected>
|
||||
@ -28,24 +29,40 @@
|
||||
# error "__cpp_lib_expected should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_expected
|
||||
# error "__cpp_lib_freestanding_expected should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER == 14
|
||||
|
||||
# ifdef __cpp_lib_expected
|
||||
# error "__cpp_lib_expected should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_expected
|
||||
# error "__cpp_lib_freestanding_expected should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER == 17
|
||||
|
||||
# ifdef __cpp_lib_expected
|
||||
# error "__cpp_lib_expected should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_expected
|
||||
# error "__cpp_lib_freestanding_expected should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER == 20
|
||||
|
||||
# ifdef __cpp_lib_expected
|
||||
# error "__cpp_lib_expected should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_expected
|
||||
# error "__cpp_lib_freestanding_expected should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER == 23
|
||||
|
||||
# ifndef __cpp_lib_expected
|
||||
@ -55,6 +72,10 @@
|
||||
# error "__cpp_lib_expected should have the value 202211L in c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_expected
|
||||
# error "__cpp_lib_freestanding_expected should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER > 23
|
||||
|
||||
# ifndef __cpp_lib_expected
|
||||
@ -64,5 +85,18 @@
|
||||
# error "__cpp_lib_expected should have the value 202211L in c++26"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_freestanding_expected
|
||||
# error "__cpp_lib_freestanding_expected should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_freestanding_expected != 202311L
|
||||
# error "__cpp_lib_freestanding_expected should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_freestanding_expected
|
||||
# error "__cpp_lib_freestanding_expected should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
#endif // TEST_STD_VER > 23
|
||||
|
||||
|
@ -25,6 +25,8 @@
|
||||
__cpp_lib_node_extract 201606L [C++17]
|
||||
__cpp_lib_nonmember_container_access 201411L [C++17]
|
||||
__cpp_lib_ranges_to_container 202202L [C++23]
|
||||
__cpp_lib_tuple_like 202207L [C++23]
|
||||
202311L [C++26]
|
||||
*/
|
||||
|
||||
#include <map>
|
||||
@ -68,6 +70,10 @@
|
||||
# error "__cpp_lib_ranges_to_container should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER == 14
|
||||
|
||||
# ifdef __cpp_lib_allocator_traits_is_always_equal
|
||||
@ -109,6 +115,10 @@
|
||||
# error "__cpp_lib_ranges_to_container should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER == 17
|
||||
|
||||
# ifndef __cpp_lib_allocator_traits_is_always_equal
|
||||
@ -162,6 +172,10 @@
|
||||
# error "__cpp_lib_ranges_to_container should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER == 20
|
||||
|
||||
# ifndef __cpp_lib_allocator_traits_is_always_equal
|
||||
@ -218,6 +232,10 @@
|
||||
# error "__cpp_lib_ranges_to_container should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER == 23
|
||||
|
||||
# ifndef __cpp_lib_allocator_traits_is_always_equal
|
||||
@ -286,6 +304,19 @@
|
||||
# error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should be defined in c++23"
|
||||
# endif
|
||||
# if __cpp_lib_tuple_like != 202207L
|
||||
# error "__cpp_lib_tuple_like should have the value 202207L in c++23"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER > 23
|
||||
|
||||
# ifndef __cpp_lib_allocator_traits_is_always_equal
|
||||
@ -363,5 +394,18 @@
|
||||
# error "__cpp_lib_ranges_to_container should have the value 202202L in c++26"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_tuple_like != 202311L
|
||||
# error "__cpp_lib_tuple_like should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
#endif // TEST_STD_VER > 23
|
||||
|
||||
|
@ -15,9 +15,10 @@
|
||||
|
||||
// Test the feature test macros defined by <mdspan>
|
||||
|
||||
/* Constant Value
|
||||
__cpp_lib_mdspan 202207L [C++23]
|
||||
__cpp_lib_submdspan 202306L [C++26]
|
||||
/* Constant Value
|
||||
__cpp_lib_freestanding_mdspan 202311L [C++26]
|
||||
__cpp_lib_mdspan 202207L [C++23]
|
||||
__cpp_lib_submdspan 202306L [C++26]
|
||||
*/
|
||||
|
||||
#include <mdspan>
|
||||
@ -25,6 +26,10 @@
|
||||
|
||||
#if TEST_STD_VER < 14
|
||||
|
||||
# ifdef __cpp_lib_freestanding_mdspan
|
||||
# error "__cpp_lib_freestanding_mdspan should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_mdspan
|
||||
# error "__cpp_lib_mdspan should not be defined before c++23"
|
||||
# endif
|
||||
@ -35,6 +40,10 @@
|
||||
|
||||
#elif TEST_STD_VER == 14
|
||||
|
||||
# ifdef __cpp_lib_freestanding_mdspan
|
||||
# error "__cpp_lib_freestanding_mdspan should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_mdspan
|
||||
# error "__cpp_lib_mdspan should not be defined before c++23"
|
||||
# endif
|
||||
@ -45,6 +54,10 @@
|
||||
|
||||
#elif TEST_STD_VER == 17
|
||||
|
||||
# ifdef __cpp_lib_freestanding_mdspan
|
||||
# error "__cpp_lib_freestanding_mdspan should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_mdspan
|
||||
# error "__cpp_lib_mdspan should not be defined before c++23"
|
||||
# endif
|
||||
@ -55,6 +68,10 @@
|
||||
|
||||
#elif TEST_STD_VER == 20
|
||||
|
||||
# ifdef __cpp_lib_freestanding_mdspan
|
||||
# error "__cpp_lib_freestanding_mdspan should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_mdspan
|
||||
# error "__cpp_lib_mdspan should not be defined before c++23"
|
||||
# endif
|
||||
@ -65,6 +82,10 @@
|
||||
|
||||
#elif TEST_STD_VER == 23
|
||||
|
||||
# ifdef __cpp_lib_freestanding_mdspan
|
||||
# error "__cpp_lib_freestanding_mdspan should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_mdspan
|
||||
# error "__cpp_lib_mdspan should be defined in c++23"
|
||||
# endif
|
||||
@ -78,6 +99,19 @@
|
||||
|
||||
#elif TEST_STD_VER > 23
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_freestanding_mdspan
|
||||
# error "__cpp_lib_freestanding_mdspan should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_freestanding_mdspan != 202311L
|
||||
# error "__cpp_lib_freestanding_mdspan should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_freestanding_mdspan
|
||||
# error "__cpp_lib_freestanding_mdspan should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_mdspan
|
||||
# error "__cpp_lib_mdspan should be defined in c++26"
|
||||
# endif
|
||||
|
@ -27,6 +27,7 @@
|
||||
__cpp_lib_enable_shared_from_this 201603L [C++17]
|
||||
__cpp_lib_make_unique 201304L [C++14]
|
||||
__cpp_lib_out_ptr 202106L [C++23]
|
||||
202311L [C++26]
|
||||
__cpp_lib_ranges 202207L [C++20]
|
||||
__cpp_lib_raw_memory_algorithms 201606L [C++17]
|
||||
__cpp_lib_shared_ptr_arrays 201611L [C++17]
|
||||
@ -625,8 +626,8 @@
|
||||
# ifndef __cpp_lib_out_ptr
|
||||
# error "__cpp_lib_out_ptr should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_out_ptr != 202106L
|
||||
# error "__cpp_lib_out_ptr should have the value 202106L in c++26"
|
||||
# if __cpp_lib_out_ptr != 202311L
|
||||
# error "__cpp_lib_out_ptr should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_out_ptr
|
||||
|
@ -15,9 +15,10 @@
|
||||
|
||||
// Test the feature test macros defined by <optional>
|
||||
|
||||
/* Constant Value
|
||||
__cpp_lib_optional 201606L [C++17]
|
||||
202110L [C++23]
|
||||
/* Constant Value
|
||||
__cpp_lib_freestanding_optional 202311L [C++26]
|
||||
__cpp_lib_optional 201606L [C++17]
|
||||
202110L [C++23]
|
||||
*/
|
||||
|
||||
#include <optional>
|
||||
@ -25,18 +26,30 @@
|
||||
|
||||
#if TEST_STD_VER < 14
|
||||
|
||||
# ifdef __cpp_lib_freestanding_optional
|
||||
# error "__cpp_lib_freestanding_optional should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_optional
|
||||
# error "__cpp_lib_optional should not be defined before c++17"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER == 14
|
||||
|
||||
# ifdef __cpp_lib_freestanding_optional
|
||||
# error "__cpp_lib_freestanding_optional should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_optional
|
||||
# error "__cpp_lib_optional should not be defined before c++17"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER == 17
|
||||
|
||||
# ifdef __cpp_lib_freestanding_optional
|
||||
# error "__cpp_lib_freestanding_optional should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_optional
|
||||
# error "__cpp_lib_optional should be defined in c++17"
|
||||
# endif
|
||||
@ -46,6 +59,10 @@
|
||||
|
||||
#elif TEST_STD_VER == 20
|
||||
|
||||
# ifdef __cpp_lib_freestanding_optional
|
||||
# error "__cpp_lib_freestanding_optional should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_optional
|
||||
# error "__cpp_lib_optional should be defined in c++20"
|
||||
# endif
|
||||
@ -55,6 +72,10 @@
|
||||
|
||||
#elif TEST_STD_VER == 23
|
||||
|
||||
# ifdef __cpp_lib_freestanding_optional
|
||||
# error "__cpp_lib_freestanding_optional should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_optional
|
||||
# error "__cpp_lib_optional should be defined in c++23"
|
||||
# endif
|
||||
@ -64,6 +85,19 @@
|
||||
|
||||
#elif TEST_STD_VER > 23
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_freestanding_optional
|
||||
# error "__cpp_lib_freestanding_optional should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_freestanding_optional != 202311L
|
||||
# error "__cpp_lib_freestanding_optional should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_freestanding_optional
|
||||
# error "__cpp_lib_freestanding_optional should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_optional
|
||||
# error "__cpp_lib_optional should be defined in c++26"
|
||||
# endif
|
||||
|
@ -17,6 +17,7 @@
|
||||
|
||||
/* Constant Value
|
||||
__cpp_lib_ranges 202207L [C++20]
|
||||
__cpp_lib_ranges_as_const 202207L [C++23]
|
||||
__cpp_lib_ranges_as_rvalue 202207L [C++23]
|
||||
__cpp_lib_ranges_chunk 202202L [C++23]
|
||||
__cpp_lib_ranges_chunk_by 202202L [C++23]
|
||||
@ -36,6 +37,10 @@
|
||||
# error "__cpp_lib_ranges should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_ranges_as_const
|
||||
# error "__cpp_lib_ranges_as_const should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_ranges_as_rvalue
|
||||
# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23"
|
||||
# endif
|
||||
@ -74,6 +79,10 @@
|
||||
# error "__cpp_lib_ranges should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_ranges_as_const
|
||||
# error "__cpp_lib_ranges_as_const should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_ranges_as_rvalue
|
||||
# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23"
|
||||
# endif
|
||||
@ -112,6 +121,10 @@
|
||||
# error "__cpp_lib_ranges should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_ranges_as_const
|
||||
# error "__cpp_lib_ranges_as_const should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_ranges_as_rvalue
|
||||
# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23"
|
||||
# endif
|
||||
@ -153,6 +166,10 @@
|
||||
# error "__cpp_lib_ranges should have the value 202207L in c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_ranges_as_const
|
||||
# error "__cpp_lib_ranges_as_const should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_ranges_as_rvalue
|
||||
# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23"
|
||||
# endif
|
||||
@ -194,6 +211,19 @@
|
||||
# error "__cpp_lib_ranges should have the value 202207L in c++23"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_ranges_as_const
|
||||
# error "__cpp_lib_ranges_as_const should be defined in c++23"
|
||||
# endif
|
||||
# if __cpp_lib_ranges_as_const != 202207L
|
||||
# error "__cpp_lib_ranges_as_const should have the value 202207L in c++23"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_ranges_as_const
|
||||
# error "__cpp_lib_ranges_as_const should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_ranges_as_rvalue
|
||||
# error "__cpp_lib_ranges_as_rvalue should be defined in c++23"
|
||||
# endif
|
||||
@ -283,6 +313,19 @@
|
||||
# error "__cpp_lib_ranges should have the value 202207L in c++26"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_ranges_as_const
|
||||
# error "__cpp_lib_ranges_as_const should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_ranges_as_const != 202207L
|
||||
# error "__cpp_lib_ranges_as_const should have the value 202207L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_ranges_as_const
|
||||
# error "__cpp_lib_ranges_as_const should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_ranges_as_rvalue
|
||||
# error "__cpp_lib_ranges_as_rvalue should be defined in c++26"
|
||||
# endif
|
||||
|
@ -15,8 +15,9 @@
|
||||
|
||||
// Test the feature test macros defined by <span>
|
||||
|
||||
/* Constant Value
|
||||
__cpp_lib_span 202002L [C++20]
|
||||
/* Constant Value
|
||||
__cpp_lib_span 202002L [C++20]
|
||||
__cpp_lib_span_initializer_list 202311L [C++26]
|
||||
*/
|
||||
|
||||
#include <span>
|
||||
@ -28,18 +29,30 @@
|
||||
# error "__cpp_lib_span should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_span_initializer_list
|
||||
# error "__cpp_lib_span_initializer_list should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER == 14
|
||||
|
||||
# ifdef __cpp_lib_span
|
||||
# error "__cpp_lib_span should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_span_initializer_list
|
||||
# error "__cpp_lib_span_initializer_list should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER == 17
|
||||
|
||||
# ifdef __cpp_lib_span
|
||||
# error "__cpp_lib_span should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_span_initializer_list
|
||||
# error "__cpp_lib_span_initializer_list should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER == 20
|
||||
|
||||
# ifndef __cpp_lib_span
|
||||
@ -49,6 +62,10 @@
|
||||
# error "__cpp_lib_span should have the value 202002L in c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_span_initializer_list
|
||||
# error "__cpp_lib_span_initializer_list should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER == 23
|
||||
|
||||
# ifndef __cpp_lib_span
|
||||
@ -58,6 +75,10 @@
|
||||
# error "__cpp_lib_span should have the value 202002L in c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_span_initializer_list
|
||||
# error "__cpp_lib_span_initializer_list should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER > 23
|
||||
|
||||
# ifndef __cpp_lib_span
|
||||
@ -67,5 +88,18 @@
|
||||
# error "__cpp_lib_span should have the value 202002L in c++26"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_span_initializer_list
|
||||
# error "__cpp_lib_span_initializer_list should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_span_initializer_list != 202311L
|
||||
# error "__cpp_lib_span_initializer_list should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_span_initializer_list
|
||||
# error "__cpp_lib_span_initializer_list should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
#endif // TEST_STD_VER > 23
|
||||
|
||||
|
@ -15,13 +15,14 @@
|
||||
|
||||
// Test the feature test macros defined by <string_view>
|
||||
|
||||
/* Constant Value
|
||||
__cpp_lib_char8_t 201907L [C++20]
|
||||
__cpp_lib_constexpr_string_view 201811L [C++20]
|
||||
__cpp_lib_starts_ends_with 201711L [C++20]
|
||||
__cpp_lib_string_contains 202011L [C++23]
|
||||
__cpp_lib_string_view 201606L [C++17]
|
||||
201803L [C++20]
|
||||
/* Constant Value
|
||||
__cpp_lib_char8_t 201907L [C++20]
|
||||
__cpp_lib_constexpr_string_view 201811L [C++20]
|
||||
__cpp_lib_freestanding_string_view 202311L [C++26]
|
||||
__cpp_lib_starts_ends_with 201711L [C++20]
|
||||
__cpp_lib_string_contains 202011L [C++23]
|
||||
__cpp_lib_string_view 201606L [C++17]
|
||||
201803L [C++20]
|
||||
*/
|
||||
|
||||
#include <string_view>
|
||||
@ -37,6 +38,10 @@
|
||||
# error "__cpp_lib_constexpr_string_view should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_string_view
|
||||
# error "__cpp_lib_freestanding_string_view should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_starts_ends_with
|
||||
# error "__cpp_lib_starts_ends_with should not be defined before c++20"
|
||||
# endif
|
||||
@ -59,6 +64,10 @@
|
||||
# error "__cpp_lib_constexpr_string_view should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_string_view
|
||||
# error "__cpp_lib_freestanding_string_view should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_starts_ends_with
|
||||
# error "__cpp_lib_starts_ends_with should not be defined before c++20"
|
||||
# endif
|
||||
@ -81,6 +90,10 @@
|
||||
# error "__cpp_lib_constexpr_string_view should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_string_view
|
||||
# error "__cpp_lib_freestanding_string_view should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_starts_ends_with
|
||||
# error "__cpp_lib_starts_ends_with should not be defined before c++20"
|
||||
# endif
|
||||
@ -118,6 +131,10 @@
|
||||
# error "__cpp_lib_constexpr_string_view should have the value 201811L in c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_string_view
|
||||
# error "__cpp_lib_freestanding_string_view should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_starts_ends_with
|
||||
# error "__cpp_lib_starts_ends_with should be defined in c++20"
|
||||
# endif
|
||||
@ -158,6 +175,10 @@
|
||||
# error "__cpp_lib_constexpr_string_view should have the value 201811L in c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_string_view
|
||||
# error "__cpp_lib_freestanding_string_view should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_starts_ends_with
|
||||
# error "__cpp_lib_starts_ends_with should be defined in c++23"
|
||||
# endif
|
||||
@ -201,6 +222,19 @@
|
||||
# error "__cpp_lib_constexpr_string_view should have the value 201811L in c++26"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_freestanding_string_view
|
||||
# error "__cpp_lib_freestanding_string_view should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_freestanding_string_view != 202311L
|
||||
# error "__cpp_lib_freestanding_string_view should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_freestanding_string_view
|
||||
# error "__cpp_lib_freestanding_string_view should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_starts_ends_with
|
||||
# error "__cpp_lib_starts_ends_with should be defined in c++26"
|
||||
# endif
|
||||
|
@ -21,6 +21,8 @@
|
||||
__cpp_lib_make_from_tuple 201606L [C++17]
|
||||
__cpp_lib_ranges_zip 202110L [C++23]
|
||||
__cpp_lib_tuple_element_t 201402L [C++14]
|
||||
__cpp_lib_tuple_like 202207L [C++23]
|
||||
202311L [C++26]
|
||||
__cpp_lib_tuples_by_type 201304L [C++14]
|
||||
*/
|
||||
|
||||
@ -49,6 +51,10 @@
|
||||
# error "__cpp_lib_tuple_element_t should not be defined before c++14"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_tuples_by_type
|
||||
# error "__cpp_lib_tuples_by_type should not be defined before c++14"
|
||||
# endif
|
||||
@ -78,6 +84,10 @@
|
||||
# error "__cpp_lib_tuple_element_t should have the value 201402L in c++14"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_tuples_by_type
|
||||
# error "__cpp_lib_tuples_by_type should be defined in c++14"
|
||||
# endif
|
||||
@ -116,6 +126,10 @@
|
||||
# error "__cpp_lib_tuple_element_t should have the value 201402L in c++17"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_tuples_by_type
|
||||
# error "__cpp_lib_tuples_by_type should be defined in c++17"
|
||||
# endif
|
||||
@ -157,6 +171,10 @@
|
||||
# error "__cpp_lib_tuple_element_t should have the value 201402L in c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_tuples_by_type
|
||||
# error "__cpp_lib_tuples_by_type should be defined in c++20"
|
||||
# endif
|
||||
@ -207,6 +225,19 @@
|
||||
# error "__cpp_lib_tuple_element_t should have the value 201402L in c++23"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should be defined in c++23"
|
||||
# endif
|
||||
# if __cpp_lib_tuple_like != 202207L
|
||||
# error "__cpp_lib_tuple_like should have the value 202207L in c++23"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_tuples_by_type
|
||||
# error "__cpp_lib_tuples_by_type should be defined in c++23"
|
||||
# endif
|
||||
@ -257,6 +288,19 @@
|
||||
# error "__cpp_lib_tuple_element_t should have the value 201402L in c++26"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_tuple_like != 202311L
|
||||
# error "__cpp_lib_tuple_like should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_tuples_by_type
|
||||
# error "__cpp_lib_tuples_by_type should be defined in c++26"
|
||||
# endif
|
||||
|
@ -24,6 +24,8 @@
|
||||
__cpp_lib_node_extract 201606L [C++17]
|
||||
__cpp_lib_nonmember_container_access 201411L [C++17]
|
||||
__cpp_lib_ranges_to_container 202202L [C++23]
|
||||
__cpp_lib_tuple_like 202207L [C++23]
|
||||
202311L [C++26]
|
||||
__cpp_lib_unordered_map_try_emplace 201411L [C++17]
|
||||
*/
|
||||
|
||||
@ -64,6 +66,10 @@
|
||||
# error "__cpp_lib_ranges_to_container should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_unordered_map_try_emplace
|
||||
# error "__cpp_lib_unordered_map_try_emplace should not be defined before c++17"
|
||||
# endif
|
||||
@ -102,6 +108,10 @@
|
||||
# error "__cpp_lib_ranges_to_container should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_unordered_map_try_emplace
|
||||
# error "__cpp_lib_unordered_map_try_emplace should not be defined before c++17"
|
||||
# endif
|
||||
@ -149,6 +159,10 @@
|
||||
# error "__cpp_lib_ranges_to_container should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_unordered_map_try_emplace
|
||||
# error "__cpp_lib_unordered_map_try_emplace should be defined in c++17"
|
||||
# endif
|
||||
@ -205,6 +219,10 @@
|
||||
# error "__cpp_lib_ranges_to_container should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_unordered_map_try_emplace
|
||||
# error "__cpp_lib_unordered_map_try_emplace should be defined in c++20"
|
||||
# endif
|
||||
@ -273,6 +291,19 @@
|
||||
# error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should be defined in c++23"
|
||||
# endif
|
||||
# if __cpp_lib_tuple_like != 202207L
|
||||
# error "__cpp_lib_tuple_like should have the value 202207L in c++23"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_unordered_map_try_emplace
|
||||
# error "__cpp_lib_unordered_map_try_emplace should be defined in c++23"
|
||||
# endif
|
||||
@ -350,6 +381,19 @@
|
||||
# error "__cpp_lib_ranges_to_container should have the value 202202L in c++26"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_tuple_like != 202311L
|
||||
# error "__cpp_lib_tuple_like should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_unordered_map_try_emplace
|
||||
# error "__cpp_lib_unordered_map_try_emplace should be defined in c++26"
|
||||
# endif
|
||||
|
@ -25,6 +25,8 @@
|
||||
__cpp_lib_integer_sequence 201304L [C++14]
|
||||
__cpp_lib_ranges_zip 202110L [C++23]
|
||||
__cpp_lib_to_underlying 202102L [C++23]
|
||||
__cpp_lib_tuple_like 202207L [C++23]
|
||||
202311L [C++26]
|
||||
__cpp_lib_tuples_by_type 201304L [C++14]
|
||||
__cpp_lib_unreachable 202202L [C++23]
|
||||
*/
|
||||
@ -70,6 +72,10 @@
|
||||
# error "__cpp_lib_to_underlying should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_tuples_by_type
|
||||
# error "__cpp_lib_tuples_by_type should not be defined before c++14"
|
||||
# endif
|
||||
@ -122,6 +128,10 @@
|
||||
# error "__cpp_lib_to_underlying should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_tuples_by_type
|
||||
# error "__cpp_lib_tuples_by_type should be defined in c++14"
|
||||
# endif
|
||||
@ -180,6 +190,10 @@
|
||||
# error "__cpp_lib_to_underlying should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_tuples_by_type
|
||||
# error "__cpp_lib_tuples_by_type should be defined in c++17"
|
||||
# endif
|
||||
@ -247,6 +261,10 @@
|
||||
# error "__cpp_lib_to_underlying should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_tuples_by_type
|
||||
# error "__cpp_lib_tuples_by_type should be defined in c++20"
|
||||
# endif
|
||||
@ -329,6 +347,19 @@
|
||||
# error "__cpp_lib_to_underlying should have the value 202102L in c++23"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should be defined in c++23"
|
||||
# endif
|
||||
# if __cpp_lib_tuple_like != 202207L
|
||||
# error "__cpp_lib_tuple_like should have the value 202207L in c++23"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_tuples_by_type
|
||||
# error "__cpp_lib_tuples_by_type should be defined in c++23"
|
||||
# endif
|
||||
@ -414,6 +445,19 @@
|
||||
# error "__cpp_lib_to_underlying should have the value 202102L in c++26"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_tuple_like != 202311L
|
||||
# error "__cpp_lib_tuple_like should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_tuples_by_type
|
||||
# error "__cpp_lib_tuples_by_type should be defined in c++26"
|
||||
# endif
|
||||
|
@ -15,8 +15,9 @@
|
||||
|
||||
// Test the feature test macros defined by <variant>
|
||||
|
||||
/* Constant Value
|
||||
__cpp_lib_variant 202102L [C++17]
|
||||
/* Constant Value
|
||||
__cpp_lib_freestanding_variant 202311L [C++26]
|
||||
__cpp_lib_variant 202102L [C++17]
|
||||
*/
|
||||
|
||||
#include <variant>
|
||||
@ -24,18 +25,30 @@
|
||||
|
||||
#if TEST_STD_VER < 14
|
||||
|
||||
# ifdef __cpp_lib_freestanding_variant
|
||||
# error "__cpp_lib_freestanding_variant should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_variant
|
||||
# error "__cpp_lib_variant should not be defined before c++17"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER == 14
|
||||
|
||||
# ifdef __cpp_lib_freestanding_variant
|
||||
# error "__cpp_lib_freestanding_variant should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_variant
|
||||
# error "__cpp_lib_variant should not be defined before c++17"
|
||||
# endif
|
||||
|
||||
#elif TEST_STD_VER == 17
|
||||
|
||||
# ifdef __cpp_lib_freestanding_variant
|
||||
# error "__cpp_lib_freestanding_variant should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_variant
|
||||
# error "__cpp_lib_variant should be defined in c++17"
|
||||
# endif
|
||||
@ -45,6 +58,10 @@
|
||||
|
||||
#elif TEST_STD_VER == 20
|
||||
|
||||
# ifdef __cpp_lib_freestanding_variant
|
||||
# error "__cpp_lib_freestanding_variant should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_variant
|
||||
# error "__cpp_lib_variant should be defined in c++20"
|
||||
# endif
|
||||
@ -54,6 +71,10 @@
|
||||
|
||||
#elif TEST_STD_VER == 23
|
||||
|
||||
# ifdef __cpp_lib_freestanding_variant
|
||||
# error "__cpp_lib_freestanding_variant should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_variant
|
||||
# error "__cpp_lib_variant should be defined in c++23"
|
||||
# endif
|
||||
@ -63,6 +84,19 @@
|
||||
|
||||
#elif TEST_STD_VER > 23
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_freestanding_variant
|
||||
# error "__cpp_lib_freestanding_variant should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_freestanding_variant != 202311L
|
||||
# error "__cpp_lib_freestanding_variant should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_freestanding_variant
|
||||
# error "__cpp_lib_freestanding_variant should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_variant
|
||||
# error "__cpp_lib_variant should be defined in c++26"
|
||||
# endif
|
||||
|
@ -74,6 +74,7 @@
|
||||
__cpp_lib_constexpr_vector 201907L [C++20]
|
||||
__cpp_lib_copyable_function 202306L [C++26]
|
||||
__cpp_lib_coroutine 201902L [C++20]
|
||||
__cpp_lib_debugging 202311L [C++26]
|
||||
__cpp_lib_destroying_delete 201806L [C++20]
|
||||
__cpp_lib_enable_shared_from_this 201603L [C++17]
|
||||
__cpp_lib_endian 201907L [C++20]
|
||||
@ -85,8 +86,17 @@
|
||||
__cpp_lib_filesystem 201703L [C++17]
|
||||
__cpp_lib_format 202106L [C++20]
|
||||
__cpp_lib_format_ranges 202207L [C++23]
|
||||
__cpp_lib_format_uchar 202311L [C++20]
|
||||
__cpp_lib_formatters 202302L [C++23]
|
||||
__cpp_lib_forward_like 202207L [C++23]
|
||||
__cpp_lib_freestanding_algorithm 202311L [C++26]
|
||||
__cpp_lib_freestanding_array 202311L [C++26]
|
||||
__cpp_lib_freestanding_cstring 202306L [C++26]
|
||||
__cpp_lib_freestanding_expected 202311L [C++26]
|
||||
__cpp_lib_freestanding_mdspan 202311L [C++26]
|
||||
__cpp_lib_freestanding_optional 202311L [C++26]
|
||||
__cpp_lib_freestanding_string_view 202311L [C++26]
|
||||
__cpp_lib_freestanding_variant 202311L [C++26]
|
||||
__cpp_lib_fstream_native_handle 202306L [C++26]
|
||||
__cpp_lib_function_ref 202306L [C++26]
|
||||
__cpp_lib_gcd_lcm 201606L [C++17]
|
||||
@ -117,6 +127,7 @@
|
||||
__cpp_lib_jthread 201911L [C++20]
|
||||
__cpp_lib_latch 201907L [C++20]
|
||||
__cpp_lib_launder 201606L [C++17]
|
||||
__cpp_lib_linalg 202311L [C++26]
|
||||
__cpp_lib_list_remove_return_type 201806L [C++20]
|
||||
__cpp_lib_logical_traits 201510L [C++17]
|
||||
__cpp_lib_make_from_tuple 201606L [C++17]
|
||||
@ -136,11 +147,13 @@
|
||||
__cpp_lib_optional 201606L [C++17]
|
||||
202110L [C++23]
|
||||
__cpp_lib_out_ptr 202106L [C++23]
|
||||
202311L [C++26]
|
||||
__cpp_lib_parallel_algorithm 201603L [C++17]
|
||||
__cpp_lib_polymorphic_allocator 201902L [C++20]
|
||||
__cpp_lib_print 202207L [C++23]
|
||||
__cpp_lib_quoted_string_io 201304L [C++14]
|
||||
__cpp_lib_ranges 202207L [C++20]
|
||||
__cpp_lib_ranges_as_const 202207L [C++23]
|
||||
__cpp_lib_ranges_as_rvalue 202207L [C++23]
|
||||
__cpp_lib_ranges_chunk 202202L [C++23]
|
||||
__cpp_lib_ranges_chunk_by 202202L [C++23]
|
||||
@ -159,6 +172,7 @@
|
||||
__cpp_lib_result_of_sfinae 201210L [C++14]
|
||||
__cpp_lib_robust_nonmodifying_seq_ops 201304L [C++14]
|
||||
__cpp_lib_sample 201603L [C++17]
|
||||
__cpp_lib_saturation_arithmetic 202311L [C++26]
|
||||
__cpp_lib_scoped_lock 201703L [C++17]
|
||||
__cpp_lib_semaphore 201907L [C++20]
|
||||
__cpp_lib_shared_mutex 201505L [C++17]
|
||||
@ -171,6 +185,7 @@
|
||||
__cpp_lib_smart_ptr_owner_equality 202306L [C++26]
|
||||
__cpp_lib_source_location 201907L [C++20]
|
||||
__cpp_lib_span 202002L [C++20]
|
||||
__cpp_lib_span_initializer_list 202311L [C++26]
|
||||
__cpp_lib_spanstream 202106L [C++23]
|
||||
__cpp_lib_ssize 201902L [C++20]
|
||||
__cpp_lib_sstream_from_string_view 202306L [C++26]
|
||||
@ -196,6 +211,8 @@
|
||||
__cpp_lib_transparent_operators 201210L [C++14]
|
||||
201510L [C++17]
|
||||
__cpp_lib_tuple_element_t 201402L [C++14]
|
||||
__cpp_lib_tuple_like 202207L [C++23]
|
||||
202311L [C++26]
|
||||
__cpp_lib_tuples_by_type 201304L [C++14]
|
||||
__cpp_lib_type_identity 201806L [C++20]
|
||||
__cpp_lib_type_trait_variable_templates 201510L [C++17]
|
||||
@ -429,6 +446,10 @@
|
||||
# error "__cpp_lib_coroutine should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_debugging
|
||||
# error "__cpp_lib_debugging should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_destroying_delete
|
||||
# error "__cpp_lib_destroying_delete should not be defined before c++20"
|
||||
# endif
|
||||
@ -469,6 +490,10 @@
|
||||
# error "__cpp_lib_format_ranges should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_format_uchar
|
||||
# error "__cpp_lib_format_uchar should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_formatters
|
||||
# error "__cpp_lib_formatters should not be defined before c++23"
|
||||
# endif
|
||||
@ -477,6 +502,38 @@
|
||||
# error "__cpp_lib_forward_like should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_algorithm
|
||||
# error "__cpp_lib_freestanding_algorithm should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_array
|
||||
# error "__cpp_lib_freestanding_array should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_cstring
|
||||
# error "__cpp_lib_freestanding_cstring should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_expected
|
||||
# error "__cpp_lib_freestanding_expected should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_mdspan
|
||||
# error "__cpp_lib_freestanding_mdspan should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_optional
|
||||
# error "__cpp_lib_freestanding_optional should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_string_view
|
||||
# error "__cpp_lib_freestanding_string_view should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_variant
|
||||
# error "__cpp_lib_freestanding_variant should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_fstream_native_handle
|
||||
# error "__cpp_lib_fstream_native_handle should not be defined before c++26"
|
||||
# endif
|
||||
@ -597,6 +654,10 @@
|
||||
# error "__cpp_lib_launder should not be defined before c++17"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_linalg
|
||||
# error "__cpp_lib_linalg should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_list_remove_return_type
|
||||
# error "__cpp_lib_list_remove_return_type should not be defined before c++20"
|
||||
# endif
|
||||
@ -689,6 +750,10 @@
|
||||
# error "__cpp_lib_ranges should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_ranges_as_const
|
||||
# error "__cpp_lib_ranges_as_const should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_ranges_as_rvalue
|
||||
# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23"
|
||||
# endif
|
||||
@ -761,6 +826,10 @@
|
||||
# error "__cpp_lib_sample should not be defined before c++17"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_saturation_arithmetic
|
||||
# error "__cpp_lib_saturation_arithmetic should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_scoped_lock
|
||||
# error "__cpp_lib_scoped_lock should not be defined before c++17"
|
||||
# endif
|
||||
@ -805,6 +874,10 @@
|
||||
# error "__cpp_lib_span should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_span_initializer_list
|
||||
# error "__cpp_lib_span_initializer_list should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_spanstream
|
||||
# error "__cpp_lib_spanstream should not be defined before c++23"
|
||||
# endif
|
||||
@ -893,6 +966,10 @@
|
||||
# error "__cpp_lib_tuple_element_t should not be defined before c++14"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_tuples_by_type
|
||||
# error "__cpp_lib_tuples_by_type should not be defined before c++14"
|
||||
# endif
|
||||
@ -1157,6 +1234,10 @@
|
||||
# error "__cpp_lib_coroutine should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_debugging
|
||||
# error "__cpp_lib_debugging should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_destroying_delete
|
||||
# error "__cpp_lib_destroying_delete should not be defined before c++20"
|
||||
# endif
|
||||
@ -1200,6 +1281,10 @@
|
||||
# error "__cpp_lib_format_ranges should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_format_uchar
|
||||
# error "__cpp_lib_format_uchar should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_formatters
|
||||
# error "__cpp_lib_formatters should not be defined before c++23"
|
||||
# endif
|
||||
@ -1208,6 +1293,38 @@
|
||||
# error "__cpp_lib_forward_like should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_algorithm
|
||||
# error "__cpp_lib_freestanding_algorithm should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_array
|
||||
# error "__cpp_lib_freestanding_array should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_cstring
|
||||
# error "__cpp_lib_freestanding_cstring should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_expected
|
||||
# error "__cpp_lib_freestanding_expected should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_mdspan
|
||||
# error "__cpp_lib_freestanding_mdspan should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_optional
|
||||
# error "__cpp_lib_freestanding_optional should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_string_view
|
||||
# error "__cpp_lib_freestanding_string_view should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_variant
|
||||
# error "__cpp_lib_freestanding_variant should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_fstream_native_handle
|
||||
# error "__cpp_lib_fstream_native_handle should not be defined before c++26"
|
||||
# endif
|
||||
@ -1343,6 +1460,10 @@
|
||||
# error "__cpp_lib_launder should not be defined before c++17"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_linalg
|
||||
# error "__cpp_lib_linalg should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_list_remove_return_type
|
||||
# error "__cpp_lib_list_remove_return_type should not be defined before c++20"
|
||||
# endif
|
||||
@ -1447,6 +1568,10 @@
|
||||
# error "__cpp_lib_ranges should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_ranges_as_const
|
||||
# error "__cpp_lib_ranges_as_const should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_ranges_as_rvalue
|
||||
# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23"
|
||||
# endif
|
||||
@ -1525,6 +1650,10 @@
|
||||
# error "__cpp_lib_sample should not be defined before c++17"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_saturation_arithmetic
|
||||
# error "__cpp_lib_saturation_arithmetic should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_scoped_lock
|
||||
# error "__cpp_lib_scoped_lock should not be defined before c++17"
|
||||
# endif
|
||||
@ -1578,6 +1707,10 @@
|
||||
# error "__cpp_lib_span should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_span_initializer_list
|
||||
# error "__cpp_lib_span_initializer_list should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_spanstream
|
||||
# error "__cpp_lib_spanstream should not be defined before c++23"
|
||||
# endif
|
||||
@ -1678,6 +1811,10 @@
|
||||
# error "__cpp_lib_tuple_element_t should have the value 201402L in c++14"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_tuples_by_type
|
||||
# error "__cpp_lib_tuples_by_type should be defined in c++14"
|
||||
# endif
|
||||
@ -1981,6 +2118,10 @@
|
||||
# error "__cpp_lib_coroutine should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_debugging
|
||||
# error "__cpp_lib_debugging should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_destroying_delete
|
||||
# error "__cpp_lib_destroying_delete should not be defined before c++20"
|
||||
# endif
|
||||
@ -2045,6 +2186,10 @@
|
||||
# error "__cpp_lib_format_ranges should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_format_uchar
|
||||
# error "__cpp_lib_format_uchar should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_formatters
|
||||
# error "__cpp_lib_formatters should not be defined before c++23"
|
||||
# endif
|
||||
@ -2053,6 +2198,38 @@
|
||||
# error "__cpp_lib_forward_like should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_algorithm
|
||||
# error "__cpp_lib_freestanding_algorithm should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_array
|
||||
# error "__cpp_lib_freestanding_array should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_cstring
|
||||
# error "__cpp_lib_freestanding_cstring should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_expected
|
||||
# error "__cpp_lib_freestanding_expected should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_mdspan
|
||||
# error "__cpp_lib_freestanding_mdspan should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_optional
|
||||
# error "__cpp_lib_freestanding_optional should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_string_view
|
||||
# error "__cpp_lib_freestanding_string_view should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_variant
|
||||
# error "__cpp_lib_freestanding_variant should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_fstream_native_handle
|
||||
# error "__cpp_lib_fstream_native_handle should not be defined before c++26"
|
||||
# endif
|
||||
@ -2224,6 +2401,10 @@
|
||||
# error "__cpp_lib_launder should have the value 201606L in c++17"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_linalg
|
||||
# error "__cpp_lib_linalg should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_list_remove_return_type
|
||||
# error "__cpp_lib_list_remove_return_type should not be defined before c++20"
|
||||
# endif
|
||||
@ -2376,6 +2557,10 @@
|
||||
# error "__cpp_lib_ranges should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_ranges_as_const
|
||||
# error "__cpp_lib_ranges_as_const should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_ranges_as_rvalue
|
||||
# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23"
|
||||
# endif
|
||||
@ -2460,6 +2645,10 @@
|
||||
# error "__cpp_lib_sample should have the value 201603L in c++17"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_saturation_arithmetic
|
||||
# error "__cpp_lib_saturation_arithmetic should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_scoped_lock
|
||||
# error "__cpp_lib_scoped_lock should be defined in c++17"
|
||||
# endif
|
||||
@ -2531,6 +2720,10 @@
|
||||
# error "__cpp_lib_span should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_span_initializer_list
|
||||
# error "__cpp_lib_span_initializer_list should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_spanstream
|
||||
# error "__cpp_lib_spanstream should not be defined before c++23"
|
||||
# endif
|
||||
@ -2643,6 +2836,10 @@
|
||||
# error "__cpp_lib_tuple_element_t should have the value 201402L in c++17"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_tuples_by_type
|
||||
# error "__cpp_lib_tuples_by_type should be defined in c++17"
|
||||
# endif
|
||||
@ -3081,6 +3278,10 @@
|
||||
# error "__cpp_lib_coroutine should have the value 201902L in c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_debugging
|
||||
# error "__cpp_lib_debugging should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L
|
||||
# ifndef __cpp_lib_destroying_delete
|
||||
# error "__cpp_lib_destroying_delete should be defined in c++20"
|
||||
@ -3169,6 +3370,19 @@
|
||||
# error "__cpp_lib_format_ranges should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_format_uchar
|
||||
# error "__cpp_lib_format_uchar should be defined in c++20"
|
||||
# endif
|
||||
# if __cpp_lib_format_uchar != 202311L
|
||||
# error "__cpp_lib_format_uchar should have the value 202311L in c++20"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_format_uchar
|
||||
# error "__cpp_lib_format_uchar should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_formatters
|
||||
# error "__cpp_lib_formatters should not be defined before c++23"
|
||||
# endif
|
||||
@ -3177,6 +3391,38 @@
|
||||
# error "__cpp_lib_forward_like should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_algorithm
|
||||
# error "__cpp_lib_freestanding_algorithm should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_array
|
||||
# error "__cpp_lib_freestanding_array should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_cstring
|
||||
# error "__cpp_lib_freestanding_cstring should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_expected
|
||||
# error "__cpp_lib_freestanding_expected should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_mdspan
|
||||
# error "__cpp_lib_freestanding_mdspan should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_optional
|
||||
# error "__cpp_lib_freestanding_optional should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_string_view
|
||||
# error "__cpp_lib_freestanding_string_view should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_variant
|
||||
# error "__cpp_lib_freestanding_variant should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_fstream_native_handle
|
||||
# error "__cpp_lib_fstream_native_handle should not be defined before c++26"
|
||||
# endif
|
||||
@ -3402,6 +3648,10 @@
|
||||
# error "__cpp_lib_launder should have the value 201606L in c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_linalg
|
||||
# error "__cpp_lib_linalg should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_list_remove_return_type
|
||||
# error "__cpp_lib_list_remove_return_type should be defined in c++20"
|
||||
# endif
|
||||
@ -3575,6 +3825,10 @@
|
||||
# error "__cpp_lib_ranges should have the value 202207L in c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_ranges_as_const
|
||||
# error "__cpp_lib_ranges_as_const should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_ranges_as_rvalue
|
||||
# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23"
|
||||
# endif
|
||||
@ -3662,6 +3916,10 @@
|
||||
# error "__cpp_lib_sample should have the value 201603L in c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_saturation_arithmetic
|
||||
# error "__cpp_lib_saturation_arithmetic should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_scoped_lock
|
||||
# error "__cpp_lib_scoped_lock should be defined in c++20"
|
||||
# endif
|
||||
@ -3766,6 +4024,10 @@
|
||||
# error "__cpp_lib_span should have the value 202002L in c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_span_initializer_list
|
||||
# error "__cpp_lib_span_initializer_list should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_spanstream
|
||||
# error "__cpp_lib_spanstream should not be defined before c++23"
|
||||
# endif
|
||||
@ -3908,6 +4170,10 @@
|
||||
# error "__cpp_lib_tuple_element_t should have the value 201402L in c++20"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined before c++23"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_tuples_by_type
|
||||
# error "__cpp_lib_tuples_by_type should be defined in c++20"
|
||||
# endif
|
||||
@ -4397,6 +4663,10 @@
|
||||
# error "__cpp_lib_coroutine should have the value 201902L in c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_debugging
|
||||
# error "__cpp_lib_debugging should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L
|
||||
# ifndef __cpp_lib_destroying_delete
|
||||
# error "__cpp_lib_destroying_delete should be defined in c++23"
|
||||
@ -4491,6 +4761,19 @@
|
||||
# error "__cpp_lib_format_ranges should have the value 202207L in c++23"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_format_uchar
|
||||
# error "__cpp_lib_format_uchar should be defined in c++23"
|
||||
# endif
|
||||
# if __cpp_lib_format_uchar != 202311L
|
||||
# error "__cpp_lib_format_uchar should have the value 202311L in c++23"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_format_uchar
|
||||
# error "__cpp_lib_format_uchar should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_formatters
|
||||
# error "__cpp_lib_formatters should be defined in c++23"
|
||||
@ -4511,6 +4794,38 @@
|
||||
# error "__cpp_lib_forward_like should have the value 202207L in c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_algorithm
|
||||
# error "__cpp_lib_freestanding_algorithm should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_array
|
||||
# error "__cpp_lib_freestanding_array should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_cstring
|
||||
# error "__cpp_lib_freestanding_cstring should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_expected
|
||||
# error "__cpp_lib_freestanding_expected should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_mdspan
|
||||
# error "__cpp_lib_freestanding_mdspan should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_optional
|
||||
# error "__cpp_lib_freestanding_optional should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_string_view
|
||||
# error "__cpp_lib_freestanding_string_view should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_freestanding_variant
|
||||
# error "__cpp_lib_freestanding_variant should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_fstream_native_handle
|
||||
# error "__cpp_lib_fstream_native_handle should not be defined before c++26"
|
||||
# endif
|
||||
@ -4742,6 +5057,10 @@
|
||||
# error "__cpp_lib_launder should have the value 201606L in c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_linalg
|
||||
# error "__cpp_lib_linalg should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_list_remove_return_type
|
||||
# error "__cpp_lib_list_remove_return_type should be defined in c++23"
|
||||
# endif
|
||||
@ -4945,6 +5264,19 @@
|
||||
# error "__cpp_lib_ranges should have the value 202207L in c++23"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_ranges_as_const
|
||||
# error "__cpp_lib_ranges_as_const should be defined in c++23"
|
||||
# endif
|
||||
# if __cpp_lib_ranges_as_const != 202207L
|
||||
# error "__cpp_lib_ranges_as_const should have the value 202207L in c++23"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_ranges_as_const
|
||||
# error "__cpp_lib_ranges_as_const should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_ranges_as_rvalue
|
||||
# error "__cpp_lib_ranges_as_rvalue should be defined in c++23"
|
||||
# endif
|
||||
@ -5107,6 +5439,10 @@
|
||||
# error "__cpp_lib_sample should have the value 201603L in c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_saturation_arithmetic
|
||||
# error "__cpp_lib_saturation_arithmetic should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_scoped_lock
|
||||
# error "__cpp_lib_scoped_lock should be defined in c++23"
|
||||
# endif
|
||||
@ -5211,6 +5547,10 @@
|
||||
# error "__cpp_lib_span should have the value 202002L in c++23"
|
||||
# endif
|
||||
|
||||
# ifdef __cpp_lib_span_initializer_list
|
||||
# error "__cpp_lib_span_initializer_list should not be defined before c++26"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_spanstream
|
||||
# error "__cpp_lib_spanstream should be defined in c++23"
|
||||
@ -5392,6 +5732,19 @@
|
||||
# error "__cpp_lib_tuple_element_t should have the value 201402L in c++23"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should be defined in c++23"
|
||||
# endif
|
||||
# if __cpp_lib_tuple_like != 202207L
|
||||
# error "__cpp_lib_tuple_like should have the value 202207L in c++23"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_tuples_by_type
|
||||
# error "__cpp_lib_tuples_by_type should be defined in c++23"
|
||||
# endif
|
||||
@ -5905,6 +6258,19 @@
|
||||
# error "__cpp_lib_coroutine should have the value 201902L in c++26"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_debugging
|
||||
# error "__cpp_lib_debugging should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_debugging != 202311L
|
||||
# error "__cpp_lib_debugging should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_debugging
|
||||
# error "__cpp_lib_debugging should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L
|
||||
# ifndef __cpp_lib_destroying_delete
|
||||
# error "__cpp_lib_destroying_delete should be defined in c++26"
|
||||
@ -5999,6 +6365,19 @@
|
||||
# error "__cpp_lib_format_ranges should have the value 202207L in c++26"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_format_uchar
|
||||
# error "__cpp_lib_format_uchar should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_format_uchar != 202311L
|
||||
# error "__cpp_lib_format_uchar should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_format_uchar
|
||||
# error "__cpp_lib_format_uchar should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_formatters
|
||||
# error "__cpp_lib_formatters should be defined in c++26"
|
||||
@ -6019,6 +6398,110 @@
|
||||
# error "__cpp_lib_forward_like should have the value 202207L in c++26"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_freestanding_algorithm
|
||||
# error "__cpp_lib_freestanding_algorithm should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_freestanding_algorithm != 202311L
|
||||
# error "__cpp_lib_freestanding_algorithm should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_freestanding_algorithm
|
||||
# error "__cpp_lib_freestanding_algorithm should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_freestanding_array
|
||||
# error "__cpp_lib_freestanding_array should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_freestanding_array != 202311L
|
||||
# error "__cpp_lib_freestanding_array should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_freestanding_array
|
||||
# error "__cpp_lib_freestanding_array should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_freestanding_cstring
|
||||
# error "__cpp_lib_freestanding_cstring should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_freestanding_cstring != 202306L
|
||||
# error "__cpp_lib_freestanding_cstring should have the value 202306L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_freestanding_cstring
|
||||
# error "__cpp_lib_freestanding_cstring should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_freestanding_expected
|
||||
# error "__cpp_lib_freestanding_expected should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_freestanding_expected != 202311L
|
||||
# error "__cpp_lib_freestanding_expected should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_freestanding_expected
|
||||
# error "__cpp_lib_freestanding_expected should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_freestanding_mdspan
|
||||
# error "__cpp_lib_freestanding_mdspan should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_freestanding_mdspan != 202311L
|
||||
# error "__cpp_lib_freestanding_mdspan should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_freestanding_mdspan
|
||||
# error "__cpp_lib_freestanding_mdspan should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_freestanding_optional
|
||||
# error "__cpp_lib_freestanding_optional should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_freestanding_optional != 202311L
|
||||
# error "__cpp_lib_freestanding_optional should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_freestanding_optional
|
||||
# error "__cpp_lib_freestanding_optional should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_freestanding_string_view
|
||||
# error "__cpp_lib_freestanding_string_view should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_freestanding_string_view != 202311L
|
||||
# error "__cpp_lib_freestanding_string_view should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_freestanding_string_view
|
||||
# error "__cpp_lib_freestanding_string_view should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_freestanding_variant
|
||||
# error "__cpp_lib_freestanding_variant should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_freestanding_variant != 202311L
|
||||
# error "__cpp_lib_freestanding_variant should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_freestanding_variant
|
||||
# error "__cpp_lib_freestanding_variant should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_fstream_native_handle
|
||||
# error "__cpp_lib_fstream_native_handle should be defined in c++26"
|
||||
@ -6277,6 +6760,19 @@
|
||||
# error "__cpp_lib_launder should have the value 201606L in c++26"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_linalg
|
||||
# error "__cpp_lib_linalg should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_linalg != 202311L
|
||||
# error "__cpp_lib_linalg should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_linalg
|
||||
# error "__cpp_lib_linalg should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_list_remove_return_type
|
||||
# error "__cpp_lib_list_remove_return_type should be defined in c++26"
|
||||
# endif
|
||||
@ -6418,8 +6914,8 @@
|
||||
# ifndef __cpp_lib_out_ptr
|
||||
# error "__cpp_lib_out_ptr should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_out_ptr != 202106L
|
||||
# error "__cpp_lib_out_ptr should have the value 202106L in c++26"
|
||||
# if __cpp_lib_out_ptr != 202311L
|
||||
# error "__cpp_lib_out_ptr should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_out_ptr
|
||||
@ -6480,6 +6976,19 @@
|
||||
# error "__cpp_lib_ranges should have the value 202207L in c++26"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_ranges_as_const
|
||||
# error "__cpp_lib_ranges_as_const should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_ranges_as_const != 202207L
|
||||
# error "__cpp_lib_ranges_as_const should have the value 202207L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_ranges_as_const
|
||||
# error "__cpp_lib_ranges_as_const should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_ranges_as_rvalue
|
||||
# error "__cpp_lib_ranges_as_rvalue should be defined in c++26"
|
||||
# endif
|
||||
@ -6654,6 +7163,19 @@
|
||||
# error "__cpp_lib_sample should have the value 201603L in c++26"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_saturation_arithmetic
|
||||
# error "__cpp_lib_saturation_arithmetic should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_saturation_arithmetic != 202311L
|
||||
# error "__cpp_lib_saturation_arithmetic should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_saturation_arithmetic
|
||||
# error "__cpp_lib_saturation_arithmetic should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_scoped_lock
|
||||
# error "__cpp_lib_scoped_lock should be defined in c++26"
|
||||
# endif
|
||||
@ -6767,6 +7289,19 @@
|
||||
# error "__cpp_lib_span should have the value 202002L in c++26"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_span_initializer_list
|
||||
# error "__cpp_lib_span_initializer_list should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_span_initializer_list != 202311L
|
||||
# error "__cpp_lib_span_initializer_list should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_span_initializer_list
|
||||
# error "__cpp_lib_span_initializer_list should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_spanstream
|
||||
# error "__cpp_lib_spanstream should be defined in c++26"
|
||||
@ -6975,6 +7510,19 @@
|
||||
# error "__cpp_lib_tuple_element_t should have the value 201402L in c++26"
|
||||
# endif
|
||||
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# ifndef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should be defined in c++26"
|
||||
# endif
|
||||
# if __cpp_lib_tuple_like != 202311L
|
||||
# error "__cpp_lib_tuple_like should have the value 202311L in c++26"
|
||||
# endif
|
||||
# else // _LIBCPP_VERSION
|
||||
# ifdef __cpp_lib_tuple_like
|
||||
# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_tuples_by_type
|
||||
# error "__cpp_lib_tuples_by_type should be defined in c++26"
|
||||
# endif
|
||||
|
@ -88,10 +88,10 @@ feature_test_macros = [
|
||||
{
|
||||
"name": "__cpp_lib_allocate_at_least",
|
||||
"values": {
|
||||
"c++23": 202106,
|
||||
# Note LWG3887 Version macro for allocate_at_least
|
||||
#"c++26": 202302, # P2652R2 Disallow User Specialization of allocator_traits
|
||||
},
|
||||
"c++23": 202106,
|
||||
# Note LWG3887 Version macro for allocate_at_least
|
||||
# "c++26": 202302, # P2652R2 Disallow User Specialization of allocator_traits
|
||||
},
|
||||
"headers": ["memory"],
|
||||
},
|
||||
{
|
||||
@ -139,7 +139,9 @@ feature_test_macros = [
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_associative_heterogeneous_insertion",
|
||||
"values": {"c++26": 202306}, # P2363R5 Extending associative containers with the remaining heterogeneous overloads
|
||||
"values": {
|
||||
"c++26": 202306 # P2363R5 Extending associative containers with the remaining heterogeneous overloads
|
||||
},
|
||||
"headers": ["map", "set", "unordered_map", "unordered_set"],
|
||||
"unimplemented": True,
|
||||
},
|
||||
@ -203,18 +205,18 @@ feature_test_macros = [
|
||||
{
|
||||
"name": "__cpp_lib_bind_back",
|
||||
"values": {
|
||||
"c++23": 202202,
|
||||
"c++26": 202306, # P2714R1 Bind front and back to NTTP callables
|
||||
},
|
||||
"c++23": 202202,
|
||||
"c++26": 202306, # P2714R1 Bind front and back to NTTP callables
|
||||
},
|
||||
"headers": ["functional"],
|
||||
"unimplemented": True,
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_bind_front",
|
||||
"values": {
|
||||
"c++20": 201907,
|
||||
"c++26": 202306, # P2714R1 Bind front and back to NTTP callables
|
||||
},
|
||||
"c++20": 201907,
|
||||
"c++26": 202306, # P2714R1 Bind front and back to NTTP callables
|
||||
},
|
||||
"headers": ["functional"],
|
||||
},
|
||||
{
|
||||
@ -229,7 +231,7 @@ feature_test_macros = [
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_bitset",
|
||||
"values": {"c++26": 202306}, # P2697R1 Interfacing bitset with string_view
|
||||
"values": {"c++26": 202306}, # P2697R1 Interfacing bitset with string_view
|
||||
"headers": ["bitset"],
|
||||
},
|
||||
{
|
||||
@ -276,9 +278,9 @@ feature_test_macros = [
|
||||
{
|
||||
"name": "__cpp_lib_chrono",
|
||||
"values": {
|
||||
"c++17": 201611,
|
||||
#"c++26": 202306, # P2592R3 Hashing support for std::chrono value classes
|
||||
},
|
||||
"c++17": 201611,
|
||||
# "c++26": 202306, # P2592R3 Hashing support for std::chrono value classes
|
||||
},
|
||||
"headers": ["chrono"],
|
||||
},
|
||||
{
|
||||
@ -304,9 +306,9 @@ feature_test_macros = [
|
||||
{
|
||||
"name": "__cpp_lib_constexpr_algorithms",
|
||||
"values": {
|
||||
"c++20": 201806,
|
||||
#"c++26": 202306, # P2562R1 constexpr Stable Sorting
|
||||
},
|
||||
"c++20": 201806,
|
||||
# "c++26": 202306, # P2562R1 constexpr Stable Sorting
|
||||
},
|
||||
"headers": ["algorithm", "utility"],
|
||||
},
|
||||
{
|
||||
@ -387,7 +389,7 @@ feature_test_macros = [
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_copyable_function",
|
||||
"values": {"c++26": 202306}, # P2548R6 copyable_function
|
||||
"values": {"c++26": 202306}, # P2548R6 copyable_function
|
||||
"headers": ["functional"],
|
||||
"unimplemented": True,
|
||||
},
|
||||
@ -396,6 +398,12 @@ feature_test_macros = [
|
||||
"values": {"c++20": 201902},
|
||||
"headers": ["coroutine"],
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_debugging",
|
||||
"values": {"c++26": 202311}, # P2546R5 Debugging Support
|
||||
"headers": ["debugging"],
|
||||
"unimplemented": True,
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_destroying_delete",
|
||||
"values": {"c++20": 201806},
|
||||
@ -459,6 +467,7 @@ feature_test_macros = [
|
||||
# "c++20": 202110 Not implemented P2372R3 Fixing locale handling in chrono formatters
|
||||
"c++20": 202106,
|
||||
# "c++23": 202207, Not implemented P2419R2 Clarify handling of encodings in localized formatting of chrono types
|
||||
# "c++26": 202311, Not implemented P2918R2 Runtime format strings II
|
||||
},
|
||||
# Note these three papers are adopted at the June 2023 meeting and have sequential numbering
|
||||
# 202304 P2510R3 Formatting pointers (Implemented)
|
||||
@ -472,6 +481,14 @@ feature_test_macros = [
|
||||
"values": {"c++23": 202207},
|
||||
"headers": ["format"],
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_format_uchar",
|
||||
"values": {
|
||||
"c++20": 202311 # DR P2909R4 Fix formatting of code units as integers
|
||||
},
|
||||
"headers": [""], # Note not in format
|
||||
"unimplemented": True,
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_formatters",
|
||||
"values": {"c++23": 202302},
|
||||
@ -483,15 +500,82 @@ feature_test_macros = [
|
||||
"values": {"c++23": 202207},
|
||||
"headers": ["utility"],
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_freestanding_algorithm",
|
||||
"values": {
|
||||
"c++26": 202311 # P2407R5 Freestanding Library: Partial Classes
|
||||
},
|
||||
"headers": ["algorithm"],
|
||||
"unimplemented": True,
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_freestanding_array",
|
||||
"values": {
|
||||
"c++26": 202311 # P2407R5 Freestanding Library: Partial Classes
|
||||
},
|
||||
"headers": ["array"],
|
||||
"unimplemented": True,
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_freestanding_cstring",
|
||||
"values": {
|
||||
"c++26": 202306 # P2338R4 Freestanding Library: Character primitives and the C library
|
||||
# 202311 # P2407R5 Freestanding Library: Partial Classes
|
||||
},
|
||||
"headers": ["cstring"],
|
||||
"unimplemented": True,
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_freestanding_expected",
|
||||
"values": {
|
||||
"c++26": 202311 # P2833R2 Freestanding Library: inout expected span
|
||||
},
|
||||
"headers": ["expected"],
|
||||
"unimplemented": True,
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_freestanding_mdspan",
|
||||
"values": {
|
||||
"c++26": 202311 # P2833R2 Freestanding Library: inout expected span
|
||||
},
|
||||
"headers": ["mdspan"],
|
||||
"unimplemented": True,
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_freestanding_optional",
|
||||
"values": {
|
||||
"c++26": 202311 # P2407R5 Freestanding Library: Partial Classes
|
||||
},
|
||||
"headers": ["optional"],
|
||||
"unimplemented": True,
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_freestanding_string_view",
|
||||
"values": {
|
||||
"c++26": 202311 # P2407R5 Freestanding Library: Partial Classes
|
||||
},
|
||||
"headers": ["string_view"],
|
||||
"unimplemented": True,
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_freestanding_variant",
|
||||
"values": {
|
||||
"c++26": 202311 # P2407R5 Freestanding Library: Partial Classes
|
||||
},
|
||||
"headers": ["variant"],
|
||||
"unimplemented": True,
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_fstream_native_handle",
|
||||
"values": {"c++26": 202306}, # P1759R6 Native handles and file streams
|
||||
"values": {"c++26": 202306}, # P1759R6 Native handles and file streams
|
||||
"headers": ["fstream"],
|
||||
"unimplemented": True,
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_function_ref",
|
||||
"values": {"c++26": 202306}, # P0792R14 function_ref: a type-erased callable reference
|
||||
"values": {
|
||||
"c++26": 202306 # P0792R14 function_ref: a type-erased callable reference
|
||||
},
|
||||
"headers": ["functional"],
|
||||
"unimplemented": True,
|
||||
},
|
||||
@ -525,7 +609,9 @@ feature_test_macros = [
|
||||
{
|
||||
"name": "__cpp_lib_hazard_pointer",
|
||||
"values": {"c++26": 202306}, # P2530R3 Hazard Pointers for C++26
|
||||
"headers": ["hazard_pointer"],# TODO verify this entry since the paper was underspecified.
|
||||
"headers": [
|
||||
"hazard_pointer" # TODO verify this entry since the paper was underspecified.
|
||||
],
|
||||
"unimplemented": True,
|
||||
},
|
||||
{
|
||||
@ -644,6 +730,14 @@ feature_test_macros = [
|
||||
"values": {"c++17": 201606},
|
||||
"headers": ["new"],
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_linalg",
|
||||
"values": {
|
||||
"c++26": 202311 # P1673 A free function linear algebra interface based on the BLAS
|
||||
},
|
||||
"headers": ["linalg"],
|
||||
"unimplemented": True,
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_list_remove_return_type",
|
||||
"values": {"c++20": 201806},
|
||||
@ -734,9 +828,9 @@ feature_test_macros = [
|
||||
{
|
||||
"name": "__cpp_lib_not_fn",
|
||||
"values": {
|
||||
"c++17": 201603,
|
||||
#"c++26": 202306, # P2714R1 Bind front and back to NTTP callables
|
||||
},
|
||||
"c++17": 201603,
|
||||
# "c++26": 202306, # P2714R1 Bind front and back to NTTP callables
|
||||
},
|
||||
"headers": ["functional"],
|
||||
},
|
||||
{
|
||||
@ -751,7 +845,10 @@ feature_test_macros = [
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_out_ptr",
|
||||
"values": {"c++23": 202106},
|
||||
"values": {
|
||||
"c++23": 202106,
|
||||
"c++26": 202311, # P2833R2 Freestanding Library: inout expected span
|
||||
},
|
||||
"headers": ["memory"],
|
||||
"unimplemented": True,
|
||||
},
|
||||
@ -784,6 +881,15 @@ feature_test_macros = [
|
||||
"values": {"c++20": 202207},
|
||||
"headers": ["algorithm", "functional", "iterator", "memory", "ranges"],
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_ranges_as_const",
|
||||
"values": {
|
||||
"c++23": 202207 # P2278R4 cbegin should always return a constant iterator
|
||||
# 202311 # DR P2836R1 std::basic_const_iterator should follow its underlying type’s convertibility
|
||||
},
|
||||
"headers": ["ranges"],
|
||||
"unimplemented": True,
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_ranges_as_rvalue",
|
||||
"values": {"c++23": 202207},
|
||||
@ -814,7 +920,7 @@ feature_test_macros = [
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_ranges_repeat",
|
||||
"values": { "c++23": 202207},
|
||||
"values": {"c++23": 202207},
|
||||
"headers": ["ranges"],
|
||||
},
|
||||
{
|
||||
@ -855,7 +961,7 @@ feature_test_macros = [
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_ratio",
|
||||
"values": {"c++26": 202306}, # P2734R0 Adding the new SI prefixes
|
||||
"values": {"c++26": 202306}, # P2734R0 Adding the new SI prefixes
|
||||
"headers": ["ratio"],
|
||||
},
|
||||
{
|
||||
@ -865,8 +971,10 @@ feature_test_macros = [
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_rcu",
|
||||
"values": {"c++26": 202306}, # P2545R4 Read-Copy Update (RCU)
|
||||
"headers": ["rcu"], # TODO verify this entry since the paper was underspecified.
|
||||
"values": {"c++26": 202306}, # P2545R4 Read-Copy Update (RCU)
|
||||
"headers": [
|
||||
"rcu" # TODO verify this entry since the paper was underspecified.
|
||||
],
|
||||
"unimplemented": True,
|
||||
},
|
||||
{
|
||||
@ -895,6 +1003,12 @@ feature_test_macros = [
|
||||
"values": {"c++17": 201603},
|
||||
"headers": ["algorithm"],
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_saturation_arithmetic",
|
||||
"values": {"c++26": 202311}, # P0543R3 Saturation arithmetic
|
||||
"headers": [""], # Note not in <numerics>
|
||||
"unimplemented": True,
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_scoped_lock",
|
||||
"values": {"c++17": 201703},
|
||||
@ -944,7 +1058,9 @@ feature_test_macros = [
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_smart_ptr_owner_equality",
|
||||
"values": {"c++26": 202306}, # P1901R2 Enabling the Use of weak_ptr as Keys in Unordered Associative Containers
|
||||
"values": {
|
||||
"c++26": 202306 # P1901R2 Enabling the Use of weak_ptr as Keys in Unordered Associative Containers
|
||||
},
|
||||
"headers": ["memory"],
|
||||
"unimplemented": True,
|
||||
},
|
||||
@ -957,9 +1073,19 @@ feature_test_macros = [
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_span",
|
||||
"values": {"c++20": 202002},
|
||||
"values": {
|
||||
"c++20": 202002,
|
||||
# "c++26": 202311, # P2821R5 span.at()
|
||||
# 202311 # P2833R2 Freestanding Library: inout expected span
|
||||
},
|
||||
"headers": ["span"],
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_span_initializer_list",
|
||||
"values": {"c++26": 202311}, # P2447R6 std::span over an initializer list
|
||||
"headers": ["span"],
|
||||
"unimplemented": True,
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_spanstream",
|
||||
"values": {"c++23": 202106},
|
||||
@ -973,7 +1099,9 @@ feature_test_macros = [
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_sstream_from_string_view",
|
||||
"values": {"c++26": 202306}, # P2495R3 Interfacing stringstreams with string_view
|
||||
"values": {
|
||||
"c++26": 202306 # P2495R3 Interfacing stringstreams with string_view
|
||||
},
|
||||
"headers": ["sstream"],
|
||||
"unimplemented": True,
|
||||
},
|
||||
@ -1015,7 +1143,7 @@ feature_test_macros = [
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_submdspan",
|
||||
"values": {"c++26": 202306}, # P2630R4 submdspan
|
||||
"values": {"c++26": 202306}, # P2630R4 submdspan
|
||||
"headers": ["mdspan"],
|
||||
"unimplemented": True,
|
||||
},
|
||||
@ -1028,7 +1156,9 @@ feature_test_macros = [
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_text_encoding",
|
||||
"values": {"c++26": 202306}, # P1885R12 Naming Text Encodings to Demystify Them
|
||||
"values": {
|
||||
"c++26": 202306 # P1885R12 Naming Text Encodings to Demystify Them
|
||||
},
|
||||
"headers": ["text_encoding"],
|
||||
"unimplemented": True,
|
||||
},
|
||||
@ -1051,15 +1181,15 @@ feature_test_macros = [
|
||||
{
|
||||
"name": "__cpp_lib_to_chars",
|
||||
"values": {
|
||||
"c++17": 201611,
|
||||
"c++26": 202306, # P2497R0 Testing for success or failure of <charconv> functions
|
||||
},
|
||||
"c++17": 201611,
|
||||
"c++26": 202306, # P2497R0 Testing for success or failure of <charconv> functions
|
||||
},
|
||||
"headers": ["charconv"],
|
||||
"unimplemented": True,
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_to_string",
|
||||
"values": {"c++23": 202306}, # P2587R3 to_string or not to_string
|
||||
"values": {"c++23": 202306}, # P2587R3 to_string or not to_string
|
||||
"headers": ["string"],
|
||||
"unimplemented": True,
|
||||
},
|
||||
@ -1083,6 +1213,15 @@ feature_test_macros = [
|
||||
"values": {"c++14": 201402},
|
||||
"headers": ["tuple"],
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_tuple_like",
|
||||
"values": {
|
||||
"c++23": 202207, # P2165R4 Compatibility between tuple, pair and tuple-like objects
|
||||
"c++26": 202311, # P2819R2 Add tuple protocol to complex
|
||||
},
|
||||
"headers": ["map", "tuple", "unordered_map", "utility"],
|
||||
"unimplemented": True,
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_tuples_by_type",
|
||||
"values": {"c++14": 201304},
|
||||
@ -1130,7 +1269,9 @@ feature_test_macros = [
|
||||
},
|
||||
{
|
||||
"name": "__cpp_lib_within_lifetime",
|
||||
"values": {"c++26": 202306}, # P2641R4 Checking if a union alternative is active
|
||||
"values": {
|
||||
"c++26": 202306 # P2641R4 Checking if a union alternative is active
|
||||
},
|
||||
"headers": ["type_traits"],
|
||||
"unimplemented": True,
|
||||
},
|
||||
|
@ -150,10 +150,12 @@ mandatory_inclusions = {
|
||||
# implemented yet. They are used in the generated module input. The C++23 standard
|
||||
# modules will fail to build if a header is added but this list is not updated.
|
||||
headers_not_available = [
|
||||
"debugging",
|
||||
"flat_map",
|
||||
"flat_set",
|
||||
"generator",
|
||||
"hazard_pointer",
|
||||
"linalg",
|
||||
"rcu",
|
||||
"spanstream",
|
||||
"stacktrace",
|
||||
|
Loading…
x
Reference in New Issue
Block a user