Skip to content

Commit dbef578

Browse files
committed
Update
1 parent 0726db9 commit dbef578

5 files changed

Lines changed: 28 additions & 44 deletions

File tree

draft.pdf

-494 Bytes
Binary file not shown.

full.html

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -42506,16 +42506,12 @@
4250642506
<span class='curlybracket'>}</span> <span class='keyword'>else</span> <span class='curlybracket'>{</span>
4250742507
<span class='keyword'>return</span> span<span class='anglebracket'>&lt;</span><span class='keyword'>const</span> T, <i ><span class='texttt'>see below</span></i><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='keyword'>static_cast</span><span class='anglebracket'>&lt;</span><span class='keyword'>const</span> T<span class='operator'>*</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='literal'>nullptr</span><span class='parenthesis'>)</span>, <span class='literal'>0</span><span class='parenthesis'>)</span>;
4250842508
<span class='curlybracket'>}</span>
42509-
42510-
\pnum<span class='curlybracket'>{</span>meta<span class='operator'>.</span>tex<span class='curlybracket'>}</span><span class='curlybracket'>{</span><span class='literal'>3293</span><span class='curlybracket'>}</span><span class='operator'>%</span>
42511-
\remarks
42512-
The second <span class='keyword'>template</span> argument of the returned \tcode<span class='curlybracket'>{</span>span<span class='curlybracket'>}</span> type
42513-
is \tcode<span class='curlybracket'>{</span><span class='keyword'>static_cast</span><span class='anglebracket'>&lt;</span>size_t<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>ranges<span class='operator'>::</span>size<span class='parenthesis'>(</span>r<span class='parenthesis'>)</span><span class='parenthesis'>)</span><span class='curlybracket'>}</span>
42514-
<span class='keyword'>if</span> \tcode<span class='curlybracket'>{</span>ranges<span class='operator'>::</span>size<span class='parenthesis'>(</span>r<span class='parenthesis'>)</span><span class='curlybracket'>}</span> is a constant expression, and
42515-
\tcode<span class='curlybracket'>{</span>dynamic_extent<span class='curlybracket'>}</span> otherwise<span class='operator'>.</span>
42516-
</span></div></div></div></div><div class='texpara'><div id='lib:define_static_object'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:define_static_object'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>class</span> T<span class='anglebracket'>&gt;</span>
42509+
</span></div></div></div></div><div class='para'><div class='marginalizedparent'><a class='marginalized' href='meta.define.static#17'>17</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/cplusplus/draft/tree/1e747bf358e4546e9661c6bcee01a1dd71d2186f/source/meta.tex#L3294'>#</a></div><div class='texpara'><div id='meta.define.static-17.sentence-1' class='sentence'><i >Remarks</i>: The second template argument of the returned <span class='texttt'>span</span> type
42510+
is <span class='texttt'><span class='keyword'>static_<span class='shy'></span>cast</span><span class='anglebracket'>&lt;</span>size_<span class='shy'></span>t<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>ranges<span class='operator'>&#x200b;::&#x200b;</span>size<span class='parenthesis'>(</span>r<span class='parenthesis'>)</span><span class='parenthesis'>)</span></span>
42511+
if <span class='texttt'>ranges<span class='operator'>&#x200b;::&#x200b;</span>size<span class='parenthesis'>(</span>r<span class='parenthesis'>)</span></span> is a constant expression, and
42512+
<span class='texttt'>dynamic_<span class='shy'></span>extent</span> otherwise<a class='hidden_link' href='#meta.define.static-17.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:define_static_object'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:define_static_object'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>class</span> T<span class='anglebracket'>&gt;</span>
4251742513
<span class='keyword'>consteval</span> <span class='keyword'>const</span> remove_cvref_t<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span><span class='operator'>*</span> define_static_object<span class='parenthesis'>(</span>T<span class='operator'>&amp;</span><span class='operator'>&amp;</span> t<span class='parenthesis'>)</span>;
42518-
</code></div></div></div><div class='para'><div class='marginalizedparent'><a class='marginalized' href='meta.define.static#17'>17</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/cplusplus/draft/tree/1e747bf358e4546e9661c6bcee01a1dd71d2186f/source/meta.tex#L3309'>#</a></div><div class='texpara'><div id='meta.define.static-17.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
42514+
</code></div></div></div><div class='para'><div class='marginalizedparent'><a class='marginalized' href='meta.define.static#18'>18</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/cplusplus/draft/tree/1e747bf358e4546e9661c6bcee01a1dd71d2186f/source/meta.tex#L3309'>#</a></div><div class='texpara'><div id='meta.define.static-18.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
4251942515
<span class='codeblock'><span class='keyword'>using</span> U <span class='operator'>=</span> remove_cvref_t<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span>;
4252042516
<span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span>meta<span class='operator'>::</span>is_class_type<span class='parenthesis'>(</span><span class='operator'>^</span><span class='operator'>^</span>U<span class='parenthesis'>)</span> <span class='operator'>|</span><span class='operator'>|</span> meta<span class='operator'>::</span>is_union_type<span class='parenthesis'>(</span><span class='operator'>^</span><span class='operator'>^</span>U<span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='curlybracket'>{</span>
4252142517
<span class='keyword'>return</span> addressof<span class='parenthesis'>(</span>meta<span class='operator'>::</span>extract<span class='anglebracket'>&lt;</span><span class='keyword'>const</span> U<span class='operator'>&amp;</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>
@@ -42526,10 +42522,10 @@
4252642522
<span class='curlybracket'>}</span> <span class='keyword'>else</span> <span class='curlybracket'>{</span>
4252742523
<span class='keyword'>return</span> define_static_array<span class='parenthesis'>(</span>span<span class='parenthesis'>(</span>addressof<span class='parenthesis'>(</span>t<span class='parenthesis'>)</span>, <span class='literal'>1</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span><span class='operator'>.</span>data<span class='parenthesis'>(</span><span class='parenthesis'>)</span>;
4252842524
<span class='curlybracket'>}</span>
42529-
</span></div></div></div></div><div class='para nonNormativeOnly'><div class='marginalizedparent'><a class='marginalized' href='meta.define.static#18'>18</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/cplusplus/draft/tree/1e747bf358e4546e9661c6bcee01a1dd71d2186f/source/meta.tex#L3325'>#</a></div><div class='texpara'><div id='meta.define.static-note-3' class='note'><div class='texpara'>[<i>Note&nbsp;<a href='#meta.define.static-note-3'>3</a></i>:&ensp;<div id='meta.define.static-18.sentence-1' class='sentence'>For class types,
42525+
</span></div></div></div></div><div class='para nonNormativeOnly'><div class='marginalizedparent'><a class='marginalized' href='meta.define.static#19'>19</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/cplusplus/draft/tree/1e747bf358e4546e9661c6bcee01a1dd71d2186f/source/meta.tex#L3325'>#</a></div><div class='texpara'><div id='meta.define.static-note-3' class='note'><div class='texpara'>[<i>Note&nbsp;<a href='#meta.define.static-note-3'>3</a></i>:&ensp;<div id='meta.define.static-19.sentence-1' class='sentence'>For class types,
4253042526
<span class='texttt'>define_<span class='shy'></span>static_<span class='shy'></span>object</span> provides
4253142527
the address of the template parameter object (<a href='#temp.param' title='13.2&emsp;Template parameters'>[temp.<span class='shy'></span>param]</a>)
42532-
that is template-argument equivalent to <span class='texttt'>t</span><a class='hidden_link' href='#meta.define.static-18.sentence-1'>.</a></div> —&nbsp;<i>end note</i>]</div></div></div></div></div><div id='meta.reflection.exception' class='section'><h3 ><a class='secnum' style='min-width:80pt'>21.4.4</a> Class <span class='texttt'>exception</span> <a class='abbr_ref' href='meta.reflection.exception'>[meta.reflection.exception]</a></h3></div><div class='texpara'><span id='lib:exception_'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:exception_'>🔗</a></div><span class='codeblock'><span class='keyword'>namespace</span> std<span class='operator'>::</span>meta <span class='curlybracket'>{</span>
42528+
that is template-argument equivalent to <span class='texttt'>t</span><a class='hidden_link' href='#meta.define.static-19.sentence-1'>.</a></div> —&nbsp;<i>end note</i>]</div></div></div></div></div><div id='meta.reflection.exception' class='section'><h3 ><a class='secnum' style='min-width:80pt'>21.4.4</a> Class <span class='texttt'>exception</span> <a class='abbr_ref' href='meta.reflection.exception'>[meta.reflection.exception]</a></h3></div><div class='texpara'><span id='lib:exception_'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:exception_'>🔗</a></div><span class='codeblock'><span class='keyword'>namespace</span> std<span class='operator'>::</span>meta <span class='curlybracket'>{</span>
4253342529
<span class='keyword'>class</span> exception <span class='operator'>:</span> <span class='keyword'>public</span> std<span class='operator'>::</span>exception <span class='curlybracket'>{</span>
4253442530
<span class='keyword'>private</span><span class='operator'>:</span>
4253542531
optional<span class='anglebracket'>&lt;</span>string<span class='anglebracket'>&gt;</span> <i >what_</i>; <span class='comment'>// <i >exposition only</i></span>

meta.define.static.html

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,12 @@
5050
<span class='curlybracket'>}</span> <span class='keyword'>else</span> <span class='curlybracket'>{</span>
5151
<span class='keyword'>return</span> span<span class='anglebracket'>&lt;</span><span class='keyword'>const</span> T, <i ><span class='texttt'>see below</span></i><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='keyword'>static_cast</span><span class='anglebracket'>&lt;</span><span class='keyword'>const</span> T<span class='operator'>*</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='literal'>nullptr</span><span class='parenthesis'>)</span>, <span class='literal'>0</span><span class='parenthesis'>)</span>;
5252
<span class='curlybracket'>}</span>
53-
54-
\pnum<span class='curlybracket'>{</span>meta<span class='operator'>.</span>tex<span class='curlybracket'>}</span><span class='curlybracket'>{</span><span class='literal'>3293</span><span class='curlybracket'>}</span><span class='operator'>%</span>
55-
\remarks
56-
The second <span class='keyword'>template</span> argument of the returned \tcode<span class='curlybracket'>{</span>span<span class='curlybracket'>}</span> type
57-
is \tcode<span class='curlybracket'>{</span><span class='keyword'>static_cast</span><span class='anglebracket'>&lt;</span>size_t<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>ranges<span class='operator'>::</span>size<span class='parenthesis'>(</span>r<span class='parenthesis'>)</span><span class='parenthesis'>)</span><span class='curlybracket'>}</span>
58-
<span class='keyword'>if</span> \tcode<span class='curlybracket'>{</span>ranges<span class='operator'>::</span>size<span class='parenthesis'>(</span>r<span class='parenthesis'>)</span><span class='curlybracket'>}</span> is a constant expression, and
59-
\tcode<span class='curlybracket'>{</span>dynamic_extent<span class='curlybracket'>}</span> otherwise<span class='operator'>.</span>
60-
</span></div></div></div></div><div class='texpara'><div id='lib:define_static_object'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:define_static_object'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>class</span> T<span class='anglebracket'>&gt;</span>
53+
</span></div></div></div></div><div class='para' id='17'><div class='marginalizedparent'><a class='marginalized' href='#17'>17</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/cplusplus/draft/tree/1e747bf358e4546e9661c6bcee01a1dd71d2186f/source/meta.tex#L3294'>#</a></div><div class='texpara'><div id='17.sentence-1' class='sentence'><i >Remarks</i>: The second template argument of the returned <span class='texttt'>span</span> type
54+
is <span class='texttt'><span class='keyword'>static_<span class='shy'></span>cast</span><span class='anglebracket'>&lt;</span>size_<span class='shy'></span>t<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>ranges<span class='operator'>&#x200b;::&#x200b;</span>size<span class='parenthesis'>(</span>r<span class='parenthesis'>)</span><span class='parenthesis'>)</span></span>
55+
if <span class='texttt'>ranges<span class='operator'>&#x200b;::&#x200b;</span>size<span class='parenthesis'>(</span>r<span class='parenthesis'>)</span></span> is a constant expression, and
56+
<span class='texttt'>dynamic_<span class='shy'></span>extent</span> otherwise<a class='hidden_link' href='#17.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:define_static_object'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:define_static_object'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>class</span> T<span class='anglebracket'>&gt;</span>
6157
<span class='keyword'>consteval</span> <span class='keyword'>const</span> remove_cvref_t<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span><span class='operator'>*</span> define_static_object<span class='parenthesis'>(</span>T<span class='operator'>&amp;</span><span class='operator'>&amp;</span> t<span class='parenthesis'>)</span>;
62-
</code></div></div></div><div class='para' id='17'><div class='marginalizedparent'><a class='marginalized' href='#17'>17</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/cplusplus/draft/tree/1e747bf358e4546e9661c6bcee01a1dd71d2186f/source/meta.tex#L3309'>#</a></div><div class='texpara'><div id='17.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
58+
</code></div></div></div><div class='para' id='18'><div class='marginalizedparent'><a class='marginalized' href='#18'>18</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/cplusplus/draft/tree/1e747bf358e4546e9661c6bcee01a1dd71d2186f/source/meta.tex#L3309'>#</a></div><div class='texpara'><div id='18.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
6359
<span class='codeblock'><span class='keyword'>using</span> U <span class='operator'>=</span> remove_cvref_t<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span>;
6460
<span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span>meta<span class='operator'>::</span>is_class_type<span class='parenthesis'>(</span><span class='operator'>^</span><span class='operator'>^</span>U<span class='parenthesis'>)</span> <span class='operator'>|</span><span class='operator'>|</span> meta<span class='operator'>::</span>is_union_type<span class='parenthesis'>(</span><span class='operator'>^</span><span class='operator'>^</span>U<span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='curlybracket'>{</span>
6561
<span class='keyword'>return</span> addressof<span class='parenthesis'>(</span>meta<span class='operator'>::</span>extract<span class='anglebracket'>&lt;</span><span class='keyword'>const</span> U<span class='operator'>&amp;</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>
@@ -70,7 +66,7 @@
7066
<span class='curlybracket'>}</span> <span class='keyword'>else</span> <span class='curlybracket'>{</span>
7167
<span class='keyword'>return</span> define_static_array<span class='parenthesis'>(</span>span<span class='parenthesis'>(</span>addressof<span class='parenthesis'>(</span>t<span class='parenthesis'>)</span>, <span class='literal'>1</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span><span class='operator'>.</span>data<span class='parenthesis'>(</span><span class='parenthesis'>)</span>;
7268
<span class='curlybracket'>}</span>
73-
</span></div></div></div></div><div class='para nonNormativeOnly' id='18'><div class='marginalizedparent'><a class='marginalized' href='#18'>18</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/cplusplus/draft/tree/1e747bf358e4546e9661c6bcee01a1dd71d2186f/source/meta.tex#L3325'>#</a></div><div class='texpara'><div id='note-3' class='note'><div class='texpara'>[<i>Note&nbsp;<a href='#note-3'>3</a></i>:&ensp;<div id='18.sentence-1' class='sentence'>For class types,
69+
</span></div></div></div></div><div class='para nonNormativeOnly' id='19'><div class='marginalizedparent'><a class='marginalized' href='#19'>19</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/cplusplus/draft/tree/1e747bf358e4546e9661c6bcee01a1dd71d2186f/source/meta.tex#L3325'>#</a></div><div class='texpara'><div id='note-3' class='note'><div class='texpara'>[<i>Note&nbsp;<a href='#note-3'>3</a></i>:&ensp;<div id='19.sentence-1' class='sentence'>For class types,
7470
<span class='texttt'>define_<span class='shy'></span>static_<span class='shy'></span>object</span> provides
7571
the address of the template parameter object (<a href='temp.param' title='13.2&emsp;Template parameters'>[temp.<span class='shy'></span>param]</a>)
76-
that is template-argument equivalent to <span class='texttt'>t</span><a class='hidden_link' href='#18.sentence-1'>.</a></div> —&nbsp;<i>end note</i>]</div></div></div></div></div></div></body></html>
72+
that is template-argument equivalent to <span class='texttt'>t</span><a class='hidden_link' href='#19.sentence-1'>.</a></div> —&nbsp;<i>end note</i>]</div></div></div></div></div></div></body></html>

0 commit comments

Comments
 (0)