comp.lang.ada
 help / color / mirror / Atom feed
From: Jerry <list_email@icloud.com>
Subject: Re: How to access an array using two different indexing schemes
Date: Wed, 29 Nov 2017 21:56:24 -0800 (PST)
Date: 2017-11-29T21:56:24-08:00	[thread overview]
Message-ID: <16c980c2-1fa6-4084-97ea-b576c75b99c3@googlegroups.com> (raw)
In-Reply-To: <ovn6uq$rdm$1@franka.jacob-sparre.dk>

On Wednesday, November 29, 2017 at 1:56:59 PM UTC-7, Randy Brukardt wrote:
> "AdaMagica"  wrote in message 
> > Am Mittwoch, 29. November 2017 17:03:04 UTC+1 schrieb Shark8:
> >
> >> Procedure Do_Stuffs( Data : in out General_Real_Array ) is
> >>   Subtype Indexing is General_Real_Array(1..Data'Length);
> >>   Subtype Offset   is General_Real_Array(0..Integer'Pred(Data'Length));
> >>
> >>   Indexed  : Indexing renames Data;
> >>   Offseted : Offset renames Data;
> >
> > No, that doesn't work! See previous posts.
> 
> Should have showed what does work:
> 
>   Indexed  : Indexing renames Indexing(Data);
>   Offseted : Offset renames Offset(Data);
> 
> The type conversions change the bounds as needed. Renames does not allocate 
> new memory.
> 
>                                      Randy.

Combining Shark8's plan with Randy's change and wrapping into a main program like this:

Procedure Shark8_And_Randy is
    Subtype Real is Float range Float'Range; -- Get rid of non-numeric.
    Type General_Real_Array is Array(Integer range <>) of Real;

    Procedure Do_Stuffs( Data : in out General_Real_Array ) is
        Subtype Indexing is General_Real_Array(1..Data'Length);
        Subtype Offset   is General_Real_Array(0..Integer'Pred(Data'Length));

        Indexed  : Indexing renames Indexing(Data);
        Offseted : Offset renames Offset(Data);
    Begin
        -- Stuffs!
        null;
    End Do_Stuffs;
Begin
    null;
End Shark8_And_Randy;

Results in GNAT complaining as such:

 shark8_and_randy.adb:9:37: renaming of conversion only allowed for tagged types
shark8_and_randy.adb:10:35: renaming of conversion only allowed for tagged types

  reply	other threads:[~2017-11-30  5:56 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-24 11:42 How to access an array using two different indexing schemes Jerry
2017-11-24 12:33 ` Jeffrey R. Carter
2017-11-24 15:52   ` AdaMagica
2017-11-24 22:25     ` Jerry
2017-11-25 13:57       ` AdaMagica
2017-11-24 22:23   ` Jerry
2017-11-25 15:39   ` Robin
2017-11-25 20:58     ` Jerry
2017-11-26 10:22       ` Robin
2017-11-28 21:57       ` G. B.
2017-11-24 17:37 ` A. Cervetti
2017-11-24 21:48   ` Jerry
2017-11-24 22:15     ` Robert A Duff
2017-11-24 23:38       ` Jerry
2017-11-26  1:07         ` Jerry
2017-11-26  8:58           ` Dmitry A. Kazakov
2017-11-26 10:31             ` Jerry
2017-11-28  1:31             ` Randy Brukardt
2017-11-28  1:25   ` Randy Brukardt
2017-11-29  4:57     ` Jerry
2017-11-29 15:01       ` AdaMagica
2017-11-29 15:21         ` AdaMagica
2017-11-30  5:32           ` Jerry
2017-11-30  5:30         ` Jerry
2017-11-29 15:03       ` AdaMagica
2017-11-29 20:53         ` Randy Brukardt
2017-11-29 16:03       ` Shark8
2017-11-29 17:04         ` AdaMagica
2017-11-29 20:56           ` Randy Brukardt
2017-11-30  5:56             ` Jerry [this message]
2017-11-30 11:11               ` AdaMagica
2017-11-30 11:40                 ` AdaMagica
2017-11-30 14:47                   ` Niklas Holsti
2017-11-30 17:30                     ` AdaMagica
2017-11-30 19:31                       ` G. B.
2017-11-30 19:43                         ` Shark8
2017-11-30 22:10                           ` Randy Brukardt
2017-11-30 21:57                     ` Randy Brukardt
2017-11-30 22:49                 ` Jerry
2017-11-30 23:00                   ` Jerry
2017-11-30 21:50               ` Randy Brukardt
2017-11-30 23:13                 ` Jerry
2017-11-24 18:37 ` Per Sandberg
2017-11-24 21:28   ` Jerry
2017-11-24 21:40     ` Dmitry A. Kazakov
2017-11-28  1:33     ` Randy Brukardt
2017-11-24 22:12 ` Robert A Duff
2017-11-28  1:39   ` Randy Brukardt
replies disabled

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