CVS difference for ai05s/ai05-0027-1.txt
--- ai05s/ai05-0027-1.txt 2007/10/31 02:24:49 1.4
+++ ai05s/ai05-0027-1.txt 2007/12/13 04:39:35 1.5
@@ -1,8 +1,9 @@
-!standard A.18.2(239/2) 07-10-28 AI05-0027-1/03
+!standard A.18.2(239/2) 07-11-20 AI05-0027-1/03
!standard A.18.3(152/2)
!standard A.18.4(75/2)
!standard A.18.7(96/2)
!class binding interpretation 06-11-13
+!status ARG Approved 9-0-0 06-11-09
!status work item 06-11-13
!status received 06-11-03
!priority Medium
@@ -12,10 +13,9 @@
!summary
-If an operation is passed a container object that has been finalized,
-it is a bounded error. If the operation is read-only, then either
-the operation proceeds as though the container were empty, or
-Constraint_Error or Program_Error is raised.
+It is a bounded error if an operation is passed a container object that has been
+finalized. If the operation is read-only, then either the operation proceeds as
+though the container were empty, or Constraint_Error or Program_Error is raised.
If a finalized container is passed to an operation that would update
the container, Constraint_Error or Program_Error is raised.
@@ -28,13 +28,16 @@
(See Summary.)
+!wording
+
Add the following after A.18.2(239):
- It is a bounded error to call any subprogram declared in Containers.Vectors
- when the associated container has been finalized. If the operation takes
- Container as an IN OUT parameter, then it raises Constraint_Error or
- Program_Error. Otherwise, the operation either proceeds as it would
- for an empty container, or it raises Constraint_Error or Program_Error.
+ It is a bounded error to call any subprogram declared in the visible part of
+ Containers.Vectors when the associated container has been finalized.
+ If the operation takes Container as an IN OUT parameter, then it raises
+ Constraint_Error or Program_Error. Otherwise, the operation either proceeds
+ as it would for an empty container, or it raises Constraint_Error
+ or Program_Error.
Make corresponding additions to all other container packages,
after A.18.3(152), after A.18.4(75) [needs "Bounded Error" label
@@ -62,7 +65,7 @@
We have suggesting adding this paragraph *before* the discussion of ambiguous
cursors, as we want that discussion to flow right into the discussion of
-invalid curaors.
+invalid cursors.
!example
@@ -84,7 +87,7 @@
package body Pack is
package Usage_History is new Ada.Containers.Vectors (...);
- Finalzation_Usage: Usage_History.Vector;
+ Finalization_Usage: Usage_History.Vector;
procedure Finalize (Object : in out T) is
begin
@@ -107,11 +110,73 @@
AI95-00280 for some examples).
---!corrigendum A.18.2(239/2)
+!corrigendum A.18.2(239/2)
+@dinsa
+Calling Merge in an instance of Generic_Sorting with either Source
+or Target not ordered smallest first using the provided generic formal
+"<" operator is a bounded error. Either Program_Error is raised after
+Target is updated as described for Merge, or the operation works as defined.
+@dinst
+It is a bounded error to call any subprogram declared in the visible part of
+Containers.Vectors when the associated container has been finalized.
+If the operation takes Container as an @b<in out> parameter, then it
+raises Constraint_Error or Program_Error. Otherwise, the operation either
+proceeds as it would for an empty container, or it raises Constraint_Error
+or Program_Error.
+
+!corrigendum A.18.3(152/2)
+
+@dinsa
+Calling Merge in an instance of Generic_Sorting with either Source
+or Target not ordered smallest first using the provided generic formal
+"<" operator is a bounded error. Either Program_Error is raised after
+Target is updated as described for Merge, or the operation works as defined.
+@dinst
+It is a bounded error to call any subprogram declared in the visible part of
+Containers.Doubly_Linked_Lists when the associated container has been
+finalized. If the operation takes Container as an @b<in out> parameter,
+then it raises Constraint_Error or Program_Error. Otherwise, the operation
+either proceeds as it would for an empty container, or it raises
+Constraint_Error or Program_Error.
+
+!corrigendum A.18.4(75/2)
+
+@dinsa
+@xindent<Iterate calls Process.@b<all> with a cursor that designates each node
+in Container, starting with the first node and moving the cursor according
+to the successor relation. Program_Error is propagated if Process.@b<all>
+tampers with the cursors of Container. Any exception raised by Process.@b<all>
+is propagated.
+@dinss
+@s8<@i<Bounded Error>>
+
+It is a bounded error to call any subprogram declared in the visible part
+of a map package when the associated container has been finalized. If the
+operation takes Container as an @b<in out> parameter, then it raises
+Constraint_Error or Program_Error. Otherwise, the operation either proceeds
+as it would for an empty container, or it raises Constraint_Error or
+Program_Error.
+
+!corrigendum A.18.7(96/2)
+
+@dinsa
+If Element_Type is unconstrained and definite, then the actual Element
+parameter of Process.@b<all> shall be unconstrained.
+@dinss
+@s8<@i<Bounded Error>>
+
+It is a bounded error to call any subprogram declared in the visible part
+of a set package when the associated container has been finalized.
+If the operation takes Container as an @b<in out> parameter, then it
+raises Constraint_Error or Program_Error. Otherwise, the operation either
+proceeds as it would for an empty container, or it raises Constraint_Error
+or Program_Error.
!ACATS test
+An ACATS C-Test could be constructed for this rule, using an code similar
+to the example.
!appendix
Questions? Ask the ACAA Technical Agent