comp.lang.ada
 help / color / mirror / Atom feed
From: Gautier <gautier@fakeaddress.nil>
Subject: Q: how to copy contents and use ancestor's constraints at the same time ?
Date: Mon, 13 Aug 2007 23:16:05 +0200
Date: 2007-08-13T23:16:05+02:00	[thread overview]
Message-ID: <46c0c9e8$1_3@news.bluewin.ch> (raw)

Hello!

In the procedure below, how to do [A] and [B] together, and is there a way not 
to have to write the constraints, like when constraining an object by 
initializing it with a value of the same type ?

Thanks in advance!
NB: I looked in a book, but maybe not hard enough ;-)
-----
procedure Test_Ancestor_copy is

   type Index_array_type is array(Positive range <>) of Natural;

   type PF_Data(
     n1: Natural;
     n2: Natural;
     n3: Natural
   )
   is
     tagged record
       p1 : Index_array_type(1..n1);
       p2 : Index_array_type(1..n2);
       p3 : Index_array_type(1..n3);
     end record;

   function Read return PF_Data is
   begin
     return
       (n1 => 1,
        n2 => 2,
        n3 => 3,
        p1 => (1=>1),
        p2 => (1,2),
        p3 => (1,2,3)
       );
   end Read;

   type PF is new PF_Data with record
     computed: Boolean:= False;
     result: Float;
   end record;

   initial_pf: constant PF_Data:= Read;

   work_pf: PF(
     n1 => initial_pf.n1,
     n2 => initial_pf.n2,
     n3 => initial_pf.n3
   );
   -- [A] work_pf sized with initial_pf constraints

begin
   PF_Data(work_pf):= initial_pf; -- [B] copy base data
end;
______________________________________________________________
Gautier         -- http://www.mysunrise.ch/users/gdm/index.htm
Ada programming -- http://www.mysunrise.ch/users/gdm/gsoft.htm

NB: For a direct answer, e-mail address on the Web site!



             reply	other threads:[~2007-08-13 21:16 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-08-13 21:16 Gautier [this message]
2007-08-13 21:33 ` Q: how to copy contents and use ancestor's constraints at the same time ? Adam Beneschan
2007-08-14  0:48   ` Jeffrey R. Carter
2007-08-14 23:35     ` Adam Beneschan
2007-08-14  7:45 ` Dmitry A. Kazakov
2007-08-14  8:59   ` gautier_niouzes
replies disabled

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