CVS difference for ais/ai-00197.txt

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

--- ais/ai-00197.txt	1999/07/28 00:08:45	1.5
+++ ais/ai-00197.txt	1999/10/08 23:41:06	1.6
@@ -36,6 +36,8 @@
 (See summary.)
+(Note: Corrigendum wording for this AI is included in AI-00083.)
 AI-83 discusses the cases of using an aggregate to initialize controlled
@@ -104,5 +106,31 @@
 The question is whether the component's default initialization
 is properly considered to be an "explicit initialization" for
 purposes of this AI.
+From: Randy Brukardt
+Sent: October 7, 1999
+At the recent ARG meeting, the WG9 concerns with this AI were discussed.
+The following example was given:
+   type T is new TP with ...
+   X : T := T'(TP with ...);
+If TP is controlled, then TP initialize gets called, but the finalize is T.
+After discussion, it was determined that is in fact the expected behavior in
+Ada 95, and indeed this AI doesn't change that fact. There are three ways to
+create a controlled object in Ada 95: via Initialize (a default-initialized
+object); Adjust (an explicitly initialized object); and via an aggregate
+(for which neither Initialize nor Adjust is called).
+It was pointed out that it is important that an overridding Finalize (for
+instance) call the Finalize routine of its parent. If T's Finalize calls
+TP Finalize in the above example, there probably aren't any problems.
+Tucker volunteered to write an LSN document describing the Ada 95 controlled
+type model, including the various surprises which are possible.

Questions? Ask the ACAA Technical Agent