comp.lang.ada
 help / color / mirror / Atom feed
From: Hyman Rosen <hyrosen@mail.com>
Subject: Re: controlled initialization
Date: Tue, 17 Dec 2002 01:50:27 GMT
Date: 2002-12-17T01:50:27+00:00	[thread overview]
Message-ID: <DpvL9.30910$4W1.11730@nwrddc02.gnilink.net> (raw)
In-Reply-To: <1ec946d1.0212161526.7eb81067@posting.google.com>

Matthew Heaney wrote:
>    O : constant T := (Controlled with null record);
> 
> The problem is that the body of P hasn't elaborated at the moment when
> object O is elaborated.  Were Initialize to be called at the point of
> elaboration of O, then Program_Error would be raised because the body
> of Initialize hasn't been elaborated yet.

Interesting. So (remembering that I don't know Ada) the following
would be illegal as well? If it is, is there a way to do what the
code obviously intends? Do I understand the issue correctly, that
is that MakeT could use O?

package P is
   type T is private;
   O : constant T;
private
   type T is new Controlled with null record;
   function MakeT return T;
   O : constant T := MakeT;
end P;




  reply	other threads:[~2002-12-17  1:50 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-12-16  7:04 controlled initialization Maxim Reznik
2002-12-16 14:33 ` Hyman Rosen
2002-12-16 15:06   ` Robert A Duff
2002-12-16 23:26   ` Matthew Heaney
2002-12-17  1:50     ` Hyman Rosen [this message]
2002-12-17  2:00       ` Bill Findlay
2002-12-17  7:55       ` Simon Wright
2002-12-17  6:59   ` Maxim Reznik
2002-12-16 23:31 ` Stephen Leake
2002-12-16 23:31 ` Matthew Heaney
  -- strict thread matches above, loose matches on Subject: below --
2002-12-17  6:20 Grein, Christoph
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox