CVS difference for ais/ai-00083.txt

Differences between 1.4 and version 1.5
Log of other versions for file ais/ai-00083.txt

--- ais/ai-00083.txt	1999/09/24 03:27:04	1.4
+++ ais/ai-00083.txt	1999/10/08 23:41:05	1.5
@@ -1,4 +1,4 @@
-!standard 07.06    (21)                               99-08-31  AI95-00083/03
+!standard 07.06    (21)                               99-10-07  AI95-00083/04
 !standard 07.06.01 (20)
 !class binding interpretation 95-07-27
 !status Corrigendum 2000 99-07-28
@@ -96,12 +96,12 @@
 or selection of a terminate alternative, the exception is ignored; any other
 finalizations due to be performed are performed.>
 @dinst
-@i<@s8<Implementation Requirement>>@hr
-For an aggregate of a controlled type whose value is assigned to the object
-created by an object declaration or allocator, the implementation must not
-create a separate anonymous object for the aggregate. The aggregate value
-must be constructed directly in the new object. In this case, Finalize and
-Adjust are not called on the object as a whole.
+@i<@s8<Implementation Requirements>>@hr
+For an aggregate of a controlled type whose value is assigned, other than
+@fa<assignment_statement> or @fa<return_statement>, the implementation shall
+not create a separate anonymous object for the aggregate. The aggregate value
+shall be constructed directly in the target of the assignment operation, and
+Adjust is not called on the target object.
 
 !ACATS test
 
@@ -162,5 +162,31 @@
 should be disallowed).
 
 -Tuck
+
+****************************************************************
+
+From: Randy Brukardt
+Sent: October 7, 1999
+
+At the recent ARG meeting, discussion centered around insuring that all
+places where an extension aggregate can be used are explicitly covered
+by the wording for this AI. (This discussion subsumes AI-00197, which now
+will be deleted and merged into this one).
+
+The meeting enumerated the places where an extension aggregate can be used:
+
+Assignment, return statement, generic IN parameter, formal parameter,
+allocator, initial expression, and subaggregate.
+
+The meeting then discussed for each place whether or not this rule should
+apply. Eventually, it was decided it should apply to all cases except
+assignment and return statements. While return statements probably could be
+implemented without a temporary for the aggregate, there did not seem to
+be any compelling reason to burden implementations with such a requirement.
+
+New wording was crafted to insure that all of the cases are covered.
+Note that all aggregates of a controlled type are extension aggregates:
+Controlled itself is private, so it is not possible to create a normal
+aggregate for such a type.
 
 ****************************************************************

Questions? Ask the ACAA Technical Agent