CVS difference for ai22s/ai22-0098-1.html

Differences between 1.2 and version 1.3
Log of other versions for file ai22s/ai22-0098-1.html

--- ai22s/ai22-0098-1.html	2024/03/16 09:17:05	1.2
+++ ai22s/ai22-0098-1.html	2024/04/19 07:15:53	1.3
@@ -1,4 +1,4 @@
-<html><head><meta content="text/html; charset=UTF-8" http-equiv="content-type"><title>AI22-0098-1/02</title>
+<html><head><meta content="text/html; charset=UTF-8" http-equiv="content-type"><title>AI22-0098-1/03</title>
 <style type="text/css">
 table td,table th{padding:0}
 BODY.body{background-color:#ffffff; max-width:540pt; padding:36pt 36pt 36pt 36pt}
@@ -10,15 +10,18 @@
 P.wrds{margin-bottom:0; margin-top:0; margin-left:36pt; margin-right:0; padding-top:0pt; color:#000000; font-size:11pt; padding-bottom:12pt; font-family:"Times New Roman","Times",serif; line-height:1.15; orphans:2; widows:2; text-align:left; font-weight:4
00; text-decoration:none; vertical-align:baseline; font-style:normal}
 UL.wbl{margin-bottom:0; margin-top:0; margin-left:42pt; margin-right:0; padding-top:0pt; color:#000000; font-size:11pt; padding-bottom:3pt; font-family:"Times New Roman","Times",serif; line-height:1.15; orphans:2; widows:2; text-align:left; font-weight:40
0; text-decoration:none; vertical-align:baseline; font-style:normal; list-style: disc outside}
 P.wins{margin-bottom:0; margin-top:0; margin-left:60pt; margin-right:0; padding-top:0pt; color:#000000; font-size:11pt; padding-bottom:12pt; font-family:"Times New Roman","Times",serif; line-height:1.15; orphans:2; widows:2; text-align:left; font-weight:4
00; text-decoration:none; vertical-align:baseline; font-style:normal}
+P.cbin{margin-bottom:0; margin-top:0; margin-left:36pt; margin-right:0; padding-left:4pt; padding-top:4pt; color:#000000; font-size:10pt; padding-bottom:4pt; font-family:"Courier New",monospace; line-height:1.15; text-align:left; background-color:#f0f0f0;
 font-weight:400; text-decoration:none; vertical-align:baseline; font-style:normal}
 P.text{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0; padding-top:0pt; color:#000000; font-size:11pt; padding-bottom:0pt; font-family:"Arial","Liberation Sans",sans-serif; line-height:1.15; text-align:left; font-weight:400; text-decoration:
none; vertical-align:baseline; font-style:normal}
 P.txts{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0; padding-top:0pt; color:#000000; font-size:11pt; padding-bottom:11pt; font-family:"Arial","Liberation Sans",sans-serif; line-height:1.15; text-align:left; font-weight:400; text-decoration
:none; vertical-align:baseline; font-style:normal}
 SPAN.ins{color:#007700}
 SPAN.del{color:#cc8888}
 </style>
 </head><body class="body"><p class="anum">AI22-0098-1</p>
-<p class="head">!standard 4.5.2(9.8/6) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
-&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;24-03-15
-&nbsp;AI22-0098-1/02</p>
+<p class="head">!standard 4.3.5(61/5) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;24-04-18
+&nbsp;AI22-0098-1/03</p>
+<p class="head">!standard 4.3.5(63/5)</p>
+<p class="head">!standard 4.5.2(9.8/6)</p>
 <p class="head">!standard 7.6.1(12/2)</p>
 <p class="head">!standard 10.2.1(18/6)</p>
 <p class="head">!class presentation 24-03-04</p>
@@ -40,10 +43,18 @@
 But when that was done, the last sentence of 10.2.1(18/3) was omitted. Should this sentence still
 be in the RM? (Yes.)</p>
 
-<p class="text">(3) AI22-0062-1 adds a new paragraph about a specific case of assignment. The AI
+<p class="txts">(3) AI22-0062-1 adds a new paragraph about a specific case of assignment. The AI
 puts the new paragraph after 7.6.1(11/3), which is about the general definition of finalization.
 7.6.1(12/2) is specifically about assignment, the new paragraph fits naturally after it. Should we
 put the paragraph there instead? (Yes.)</p>
+
+<p class="txts">(4) AI22-0002-1 eliminated the possibility of using an object to initialize a
+container aggregate. But the example at 4.3.5(61/5) uses such an object. This should be replaced by
+a parameterless function, right? (Yes.)</p>
+
+<p class="text">(5) The function in the example at 4.3.5(63/5) declares the Capacity parameter to
+be of subtype Integer. But a negative Capacity doesn&rsquo;t make any sense; the subtype of the
+parameter should be Natural, right? (Yes.)</p>
 <h2 class="head">!recommendation</h2>
 <p class="txts">[Editor&rsquo;s note: These fixes have been applied to Draft 2 of the Ada 202y RM,
 as they are simple and noticed during the creation of that draft. Editorials are generally applied
@@ -56,6 +67,16 @@
 
 <p class="text">(3) Put the paragraph in the more natural place.</p>
 <h2 class="head">!wording</h2>
+<p class="inst">Replace 4.3.5(61/5) by:</p>
+
+<p class="cbin"><b>function</b> Empty_Map <b>return</b> Map_Type;</p>
+<p class="word">&nbsp;</p>
+<p class="word">[Editor&rsquo;s note: The paragraph numbers of this example and the following one
+have changed in the latest draft of the RM. We&rsquo;ve used the paragraph numbers from the Ada
+2022 RM here.]</p>
+<p class="inst">Modify 4.3.5(63/5):</p>
+<p class="cbin"><b>function</b> Empty_Vector (Capacity : {Natural}[Integer] := 0)<br>
+&nbsp; &nbsp;<b>return</b> Vector_Type;</p>
 <p class="inst">Modify 4.5.2(9.8/6):</p>
 <p class="wrds">If the profile of an explicitly declared primitive equality operator of an untagged
 record type is type conformant with that of the corresponding predefined equality operator, the
@@ -109,8 +130,26 @@
 
 <p class="text">(3) It&rsquo;s possible that the paragraph reference was just botched in the
 original AI. Moving the paragraph also avoids renumbering 7.61(11.1-11.5).</p>
+<p class="txts">(4) Obviously, the example needs to be consistent with the current rules.</p>
+
+<p class="text">(5) While this is only an example, it makes sense to show good practice in these
+examples. There is no meaning for a negative capacity (the Ada.Containers use Count_Type for
+capacity parameters; this type only has positive values). Since we have a handy subtype that
+excludes negative values, we should use it.</p>
 <h2 class="head">!example</h2>
 <p class="text">None needed for presentation issues.</p>
+<h2 class="head">!corrigendum 4.3.5(61/5)</h2>
+<p class="text">@drepl</p>
+<p class="text">@xcode{Empty_Map : @b{constant} Map_Type;}</p>
+<p class="text">@dby</p>
+<p class="text">@xcode{@b{function} Empty_Map @b{return} Map_Type;}</p>
+<h2 class="head">!corrigendum 4.3.5(63/5)</h2>
+<p class="text">@drepl</p>
+<p class="text">@xcode{@b{function} Empty_Vector (Capacity : Integer := 0) @b{return}
+Vector_Type;}</p>
+<p class="text">@dby</p>
+<p class="text">@xcode{@b{function} Empty_Vector (Capacity : Natural := 0) @b{return}
+Vector_Type;}</p>
 <h2 class="head">!corrigendum 4.5.2(9.8/6)</h2>
 <p class="text">@drepl</p>
 <p class="text">If the profile of an explicitly declared primitive equality operator of an untagged

Questions? Ask the ACAA Technical Agent