CVS difference for ai05s/ai05-0021-1.txt
--- ai05s/ai05-0021-1.txt 2007/01/19 04:00:06 1.3
+++ ai05s/ai05-0021-1.txt 2007/05/26 01:43:59 1.4
@@ -1,4 +1,4 @@
-!standard A.18.3(102/2) 06-12-13 AI05-0021-1/02
+!standard A.18.3(102/2) 07-05-17 AI05-0021-1/03
!standard A.18.2(139/2)
!standard A.18.3(83/2)
!standard A.18.4(38/2)
@@ -6,30 +6,35 @@
!standard A.18.2(237/2)
!standard A.18.3(151/2)
!class binding interpretation 06-11-10
-!status ARG Approved 10-0-1 06-11-18
+!status ARG Approved 10-0-1 06-11-18
!status work item 06-11-10
!status received 06-08-31
!priority Medium
!difficulty Easy
!qualifier Error
!subject Issues with containers
-!summary
-(1) The A.18.3(102/2) equivalence includes discarding the returned Position.
+!summary
-(2) Query_Element raises Program_Error if the elements of the container that
-contains the element designated by the cursor are tampered with.
+(1) The equivalence given for Delete_First is incorrect because it attempts to
+match the result of the function call First(Container) with the in out
+parameter Position. Nevertheless, the required behaviour is as expected and
+is spelled out in detail.
+
+(2) Query_Element raises Program_Error if the elements of the container (vector,
+list, map, or set) that contains the element designated by the cursor are
+tampered with.
(3) Merge raises Program_Error if Source and Target are the same and non-empty.
!question
-(1) A.18.3(102/2) says Equivalent to Delete (Container, First (Container), Count),
+(1) A.18.3(102/2) says "Equivalent to Delete (Container, First (Container), Count)",
but the second parameter of Delete has mode "in out", and thus cannot be passed
-a function. Should this be fixed? (Yes.)
+a function call. Should this be fixed? (Yes.)
(2) A.18.2(139/2) has "Program_Error is propagated if Process.all tampers with
-the elements of Container". But there is no container in sight; what
+the elements of Container". But there is no Container in sight; what
container is intended?
(3) A.18.2(237/2) says for a Merge that "afterwards, Target contains
@@ -39,7 +44,7 @@
!recommendation
-(See Summary.)
+(See summary.)
!wording
@@ -79,8 +84,8 @@
(3) With this change, Merge raises Program_Error in precisely those cases where the
invariant on the result cannot be preserved. (It's not possible for a single
object to be empty and non-empty at the same time.) The case in question (merging
-with yourself) is weird enough it is not worthwhile to make programmers worry about
-different invariants for (only) that case.
+with yourself) is weird enough that it is not worthwhile to make programmers
+worry about different invariants for (only) that case.
!corrigendum A.18.2(139/2)
Questions? Ask the ACAA Technical Agent