CVS difference for ais/ai-00197.txt

Differences between 1.1 and version 1.2
Log of other versions for file ais/ai-00197.txt

--- ais/ai-00197.txt	1998/09/30 00:17:35	1.1
+++ ais/ai-00197.txt	1998/10/03 04:28:55	1.2
@@ -1,24 +1,54 @@
-!standard 07.06    (21)                               98-03-27  AI95-00197/00
-!class binding interpretation 98-03-27
+!standard 07.06    (21)                               98-10-02  AI95-00197/01
+!class binding interpretation 98-10-02
+!status work item 98-10-02
 !status received 98-03-27
 !priority Medium
 !difficulty Medium
-!subject Aggregates of a controlled type
+!subject Aggregate initialization of controlled subcomponents
-!summary 98-03-27
+!summary 98-10-02
-!question 98-03-27
-!recommendation 98-03-27
-!wording 98-03-27
-!discussion 98-03-27
+When an object of a controlled type is created and initialized with
+an aggregate, whether explicitly as part of an object declaration
+or allocator, or implicitly as part of the default initialization
+of some containing object, the implementation must not create a
+separate anonymous object for the aggregate.  It must create the
+value of the aggregate directly in the newly created object.  There
+is no assignment from the anonymous object to the newly created object,
+so the Finalize and Adjust that would be done for that assignment are
+not done.
+!question 98-10-02
+AI-83 imposes a requirement that in the case of a controlled object
+explicitly initialized by an aggregate, implementations must initialize
+the object in place, without using a separate temporary.  Should this
+requirement also apply to default-initialized objects that have
+controlled subcomponents that are initialized by an aggregate? (Yes.)
+!recommendation 98-10-02
+(See summary.)
+!wording 98-10-02
+(See summary.)
+!discussion 98-10-02
+AI-83 discusses the cases of using an aggregate to initialize controlled
+objects that are created by object declarations and allocators.  It does
+not mention the case of controlled subcomponents of a default-initialized
+object where the subcomponent is initialized by an aggregate.  The !summary
+and !recommendation in AI-83 specifically state that the requirement applies
+to objects "explicitly initialized with an aggregate", which could be
+interpreted as not applying to default-initialized subcomponents, though
+there's no reason why the requirement should not apply to them as well.
+This AI amends AI-83 by making it clear that the requirement applies to
+all controlled objects initialized by an aggregate, whether explicitly,
+or implicitly as part of the default initialization of some containing
 !appendix 98-03-27

Questions? Ask the ACAA Technical Agent