Skip to content

Commit c79e6b4

Browse files
committed
New issue from Jiang An: "Some feature-test macros for fully freestanding features are not yet marked freestanding"
1 parent 28f0afa commit c79e6b4

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed

xml/issue4126.xml

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
<?xml version='1.0' encoding='utf-8' standalone='no'?>
2+
<!DOCTYPE issue SYSTEM "lwg-issue.dtd">
3+
4+
<issue num="4126" status="New">
5+
<title>Some feature-test macros for fully freestanding features are not yet marked freestanding</title>
6+
<section><sref ref="[version.syn]"/></section>
7+
<submitter>Jiang An</submitter>
8+
<date>24 Jul 2024</date>
9+
<priority>99</priority>
10+
11+
<discussion>
12+
<p>
13+
Currently (<paper num="N4986"/>), it's a bit weird in <sref ref="[version.syn]"/> that some feature-test
14+
macros are not marked freestanding, despite the indicated features being fully freestanding. The
15+
freestanding status seems sometimes implicitly covered by "also in" headers that are mostly or all
16+
freestanding, but sometimes not.
17+
<p/>
18+
I think it's more consistent to ensure feature-test macros for fully freestanding features are also freestanding.
19+
</p>
20+
</discussion>
21+
22+
<resolution>
23+
<p>
24+
This wording is relative to <paper num="N4986"/>.
25+
</p>
26+
27+
<ol>
28+
<li><p>Modify <sref ref="[version.syn]"/> as indicated:</p>
29+
30+
<blockquote class="note">
31+
<p>
32+
[<i>Drafting note</i>: <tt>&lt;charconv&gt;</tt> is not fully freestanding, but all functions made <tt>constexpr</tt>
33+
by <paper num="P2291R3"/> are furtherly made freestanding by <paper num="P2338R4"/>. ]
34+
</p>
35+
</blockquote>
36+
37+
<blockquote>
38+
<pre>
39+
[&hellip;]
40+
#define __cpp_lib_common_reference 202302L // <i><ins>freestanding,</ins> also in</i> &lt;type_traits&gt;
41+
#define __cpp_lib_common_reference_wrapper 202302L // <i><ins>freestanding,</ins> also in</i> &lt;functional&gt;
42+
[&hellip;]
43+
#define __cpp_lib_constexpr_charconv 202207L // <i><ins>freestanding,</ins> also in</i> &lt;charconv&gt;
44+
[&hellip;]
45+
#define __cpp_lib_coroutine 201902L // <i><ins>freestanding,</ins> also in</i> &lt;coroutine&gt;
46+
[&hellip;]
47+
#define __cpp_lib_is_implicit_lifetime 202302L // <i><ins>freestanding,</ins> also in</i> &lt;type_traits&gt;
48+
[&hellip;]
49+
#define __cpp_lib_is_virtual_base_of 202406L // <i><ins>freestanding,</ins> also in</i> &lt;type_traits&gt;
50+
[&hellip;]
51+
#define __cpp_lib_is_within_lifetime 202306L // <i><ins>freestanding,</ins> also in</i> &lt;type_traits&gt;
52+
[&hellip;]
53+
#define __cpp_lib_mdspan 202406L // <i><ins>freestanding,</ins> also in</i> &lt;mdspan&gt;
54+
[&hellip;]
55+
#define __cpp_lib_ratio 202306L // <i><ins>freestanding,</ins> also in</i> &lt;ratio&gt;
56+
[&hellip;]
57+
#define __cpp_lib_span_initializer_list 202311L // <i><ins>freestanding,</ins> also in</i> &lt;span&gt;
58+
[&hellip;]
59+
#define __cpp_lib_submdspan 202403L // <i><ins>freestanding,</ins> also in</i> &lt;mdspan&gt;
60+
[&hellip;]
61+
#define __cpp_lib_to_array 201907L // <i><ins>freestanding,</ins> also in</i> &lt;array&gt;
62+
[&hellip;]
63+
</pre>
64+
</blockquote>
65+
66+
</li>
67+
68+
</ol>
69+
</resolution>
70+
71+
</issue>

0 commit comments

Comments
 (0)