This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of WP status.
Section: 17.3.2 [version.syn] Status: WP Submitter: Jiang An Opened: 2024-07-24 Last modified: 2024-11-28
Priority: 2
View all other issues in [version.syn].
View all issues with WP status.
Discussion:
Currently (N4986), it's a bit weird in 17.3.2 [version.syn] that some feature-test macros are not marked freestanding, despite the indicated features being fully freestanding. The freestanding status seems sometimes implicitly covered by "also in" headers that are mostly or all freestanding, but sometimes not.
I think it's more consistent to ensure feature-test macros for fully freestanding features are also freestanding.[2024-08-02; Reflector poll]
Set priority to 2 and set status to Tentatively Ready after seven votes in favour during reflector poll.
[Wrocław 2024-11-23; Status changed: Voting → WP.]
Proposed resolution:
This wording is relative to N4986.
Modify 17.3.2 [version.syn] as indicated:
[Drafting note:
<charconv>
is not fully freestanding, but all functions madeconstexpr
by P2291R3 are furtherly made freestanding by P2338R4. ]
[…] #define __cpp_lib_common_reference 202302L // freestanding, also in <type_traits> #define __cpp_lib_common_reference_wrapper 202302L // freestanding, also in <functional> […] #define __cpp_lib_constexpr_charconv 202207L // freestanding, also in <charconv> […] #define __cpp_lib_coroutine 201902L // freestanding, also in <coroutine> […] #define __cpp_lib_is_implicit_lifetime 202302L // freestanding, also in <type_traits> […] #define __cpp_lib_is_virtual_base_of 202406L // freestanding, also in <type_traits> […] #define __cpp_lib_is_within_lifetime 202306L // freestanding, also in <type_traits> […] #define __cpp_lib_mdspan 202406L // freestanding, also in <mdspan> […] #define __cpp_lib_ratio 202306L // freestanding, also in <ratio> […] #define __cpp_lib_span_initializer_list 202311L // freestanding, also in <span> […] #define __cpp_lib_submdspan 202403L // freestanding, also in <mdspan> […] #define __cpp_lib_to_array 201907L // freestanding, also in <array> […]