comp.lang.ada
 help / color / mirror / Atom feed
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




  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