From: Adam Beneschan <adam@irvine.com>
Subject: Re: Q: how to copy contents and use ancestor's constraints at the same time ?
Date: Mon, 13 Aug 2007 14:33:42 -0700
Date: 2007-08-13T14:33:42-07:00 [thread overview]
Message-ID: <1187040822.123740.52460@x35g2000prf.googlegroups.com> (raw)
In-Reply-To: <46c0c9e8$1_3@news.bluewin.ch>
On Aug 13, 2:16 pm, Gautier <gaut...@fakeaddress.nil> wrote:
> 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;
My first thought (using Ada 2005) is
work_pf : PF := (initial_pf with others => <>);
But I haven't looked through all the language rules to make sure this
is legal.
-- Adam
next prev parent reply other threads:[~2007-08-13 21:33 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-13 21:16 Q: how to copy contents and use ancestor's constraints at the same time ? Gautier
2007-08-13 21:33 ` Adam Beneschan [this message]
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