CVS difference for ai05s/ai05-0001-1.txt
--- ai05s/ai05-0001-1.txt 2009/10/15 04:20:16 1.11
+++ ai05s/ai05-0001-1.txt 2009/10/16 00:19:21 1.12
@@ -1,4 +1,4 @@
-!standard A.4.9(8/2) 09-10-14 AI05-0001-1/08
+!standard A.4.9(8/2) 09-10-15 AI05-0001-1/09
!standard A.4.9(11/2)
!standard A.4.10(0)
!standard A.18(4/2)
@@ -70,15 +70,20 @@
A.4.9 String Hashing
-Modify A.4.9(8/2) and A.4.9(11/2):
+Modify A.4.9(8/2):
-[Strings.Bounded.Hash is equivalent to the function call]
+[Strings.Bounded.Hash is equivalent to the function call]{Equivalent to}
Strings.Hash (Bounded.To_String (Key));
-[Editor's note: This makes the style consistent with A.18.2(186/2) and many
-other paragraphs. In any case, a function cannot be equivalent to a call, so
-the current wording is misleading.]
+[Editor's note: This makes the style consistent with A.4.3(84), A.18.2(186/2),
+and many other paragraphs. In any case, a function cannot be equivalent to a
+call of a function, so the current wording is misleading.]
+Modify A.4.9(11/2):
+
+[Strings.Unbounded.Hash is equivalent to the function call]{Equivalent to}
+Strings.Hash (To_String (Key));
+
Add the following declarations after A.4.9(11/2):
The library function Strings.Hash_Case_Insensitive has the following
@@ -146,7 +151,7 @@
with Ada.Containers, Ada.Strings.Equal_Case_Insensitive;
function Ada.Strings.Fixed.Equal_Case_Insensitive
- (Left, Right : Bounded.Bounded_String) return Boolean
+ (Left, Right : String) return Boolean
renames Ada.Strings.Equal_Case_Insensitive;
pragma Pure(Equal_Case_Insensitive);
@@ -343,7 +348,7 @@
The description of Move in A.18.3(88/2) is replaced with:
If Target denotes the same object as Source, then Move has no effect. Otherwise,
-equivalent to Target.Assign (Source) followed by Source.Clear.
+equivalent to Assign (Target, Source) followed by Clear (Source).
A.18.4 Maps
@@ -368,7 +373,7 @@
The description of Move in A.18.4(43/2) is replaced with:
If Target denotes the same object as Source, then Move has no effect. Otherwise,
-equivalent to Target.Assign (Source) followed by Source.Clear.
+equivalent to Assign (Target, Source) followed by Clear (Source).
@@ -433,7 +438,7 @@
The description of Move in A.18.7(38/2) is replaced with:
If Target denotes the same object as Source, then Move has no effect. Otherwise,
-equivalent to Target.Assign (Source) followed by Source.Clear.
+equivalent to Assign (Target, Source) followed by Clear (Source).
A.18.8 Containers.Hashed_Sets
@@ -921,10 +926,11 @@
bounded forms are easier to understand and are obviously portable.
The Assign and Copy subprograms are needed for the bounded forms in order that
-containers with different bounds can be assigned or copied. The built-in assignment
-would raise Constraint_Error if the bounds are different. In order to keep the
-unbounded and bounded forms as similar as possible, these subprograms were added
-to all of the containers.
+containers with different capacities can be assigned or copied. The built-in assignment
+would raise Constraint_Error if the capacities were different. In order to keep the
+unbounded and bounded forms as similar as possible (to allow almost painless
+switching between forms), these subprograms were added to all of the existing
+containers.
---
@@ -952,9 +958,9 @@
@drepl
@xindent<Strings.Bounded.Hash is equivalent to the function call
-Strings.Hash (To_String (Key));>
+Strings.Hash (Bounded.To_String (Key));>
@dby
-@xindent<Equivalent to Strings.Hash (To_String (Key));>
+@xindent<Equivalent to Strings.Hash (Bounded.To_String (Key));>
!corrigendum A.4.9(11/2)
@@ -1274,7 +1280,7 @@
Source is set to 0.>
@dby
@xindent<If Target denotes the same object as Source, then Move has no effect. Otherwise,
-equivalent to Target.Assign (Source) followed by Source.Clear.>
+equivalent to Assign (Target, Source) followed by Clear (Source).>
!corrigendum A.18.4(10/2)
@@ -1312,7 +1318,7 @@
Target. The length of Source is 0 after a successful call to Move.>
@dby
@xindent<If Target denotes the same object as Source, then Move has no effect. Otherwise,
-equivalent to Target.Assign (Source) followed by Source.Clear.>
+equivalent to Assign (Target, Source) followed by Clear (Source).>
!corrigendum A.18.5(17/2)
@@ -1417,7 +1423,7 @@
and inserted into Target. The length of Source is 0 after a successful call to Move.>
@dby
@xindent<If Target denotes the same object as Source, then Move has no effect. Otherwise,
-equivalent to Target.Assign (Source) followed by Source.Clear.>
+equivalent to Assign (Target, Source) followed by Clear (Source).>
!corrigendum A.18.8(17/2)
@@ -1514,7 +1520,7 @@
@xbullet<The description of Reserve_Capacity is replaced with:>
-@xindent<If the specified Capacity is larger than the capcaity of Container,
+@xindent<If the specified Capacity is larger than the capacity of Container,
then Reserve_Capacity propagates Capacity_Error. Otherwise, the operation has no effect.>
@s8<@i<Implementation Advice>>
@@ -1558,7 +1564,7 @@
@xbullet<In procedure Assign, if Source length is greater than Target
capacity, then Capacity_Error is propagated.>
-@xbullet<The function Copy is declared as follows:>
+@xbullet<The function Copy is replaced with:>
@xcode< @b<function> Copy (Source : List; Capacity : Count_Type := 0)
@b<return> List;>
@@ -1633,7 +1639,7 @@
@xindent<Returns a map with key/element pairs initialized from the values
in Source. If Capacity is 0, then the map capacity is the
length of Source; if Capacity is equal to or greater than
-the legnth of Source, the map capacity is the value of the Capacity
+the length of Source, the map capacity is the value of the Capacity
parameter; otherwise, the operation propagates Capacity_Error. If
the Modulus argument is 0, then the map modulus is the value
returned by a call to Default_Modulus with the map capacity as
@@ -1842,7 +1848,7 @@
@dinss
The generic library procedure Containers.Generic_Sort has the following declaration:
-@xcode<@<generic>
+@xcode<@b<generic>
@b<type> Index_Type is (<@>);
@b<with function> Before (Left, Right : Index_Type) @b<return> Boolean;
@b<with procedure> Swap (Left, Right : Index_Type);
Questions? Ask the ACAA Technical Agent