comp.lang.ada
 help / color / mirror / Atom feed
From: "Egil Høvik" <egilhovik@hotmail.com>
Subject: Re: Generic Zero Length Array
Date: Fri, 22 Feb 2008 05:53:19 -0800 (PST)
Date: 2008-02-22T05:53:19-08:00	[thread overview]
Message-ID: <2446841a-8bb0-46bc-94ed-099e4e0ca74c@k2g2000hse.googlegroups.com> (raw)
In-Reply-To: 9b771018-fb0b-42eb-ae00-12ee3eda69b2@p43g2000hsc.googlegroups.com

On Feb 22, 2:31 pm, shaunpatter...@gmail.com wrote:
> I have a bit of legacy code in my system that I am trying to remove
> all warnings from.
>
> The package is a generic -- with:
>
> type Element is (<>);
> type Element_List is array (Indexing range <>) of Element;
>
> I have been stumped by one compiler warning where one of the functions
> needs to return a zero-length empty generic array:
>
> warning: variable Result_String is read but never assigned
>
> code:
>
> if Error_Condition then
>   declare
>     type Result is new Element_List (Indexing.First + 1 ..
> Indexing'First);
>     Result_String : Result;
>   begin
>      return Element_List (Result);
>   end;
> end if;
>
> How do I initialize this array when I can't know what type it is or
> will be?
>
> Thanks
>
> --
> Shaun


A new generic parameter Null_Element would do the trick, but
that means changing code wherever the generic is used...

type Element is (<>);
type Element_List is array (Indexing range <>) of Element;
Null_Element : Element;


then you could rewrite the above code to

if Error_Condition then
  return Element_List'(Indexing'First..Indexing'First-1 =>
Null_Element);
end if;


--
~egilhh



  reply	other threads:[~2008-02-22 13:53 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-22 13:31 Generic Zero Length Array shaunpatterson
2008-02-22 13:53 ` Egil Høvik [this message]
2008-02-22 13:55   ` shaunpatterson
2008-02-22 14:11     ` Georg Bauhaus
2008-02-22 19:25   ` Randy Brukardt
2008-02-22 19:25   ` Randy Brukardt
2008-02-22 19:25   ` Randy Brukardt
2008-02-22 23:01     ` Adam Beneschan
2008-02-23  9:30       ` Dmitry A. Kazakov
2008-02-23 14:27       ` Robert A Duff
2008-02-23 16:16         ` Dmitry A. Kazakov
2008-02-25 16:41         ` Adam Beneschan
2008-02-25 19:14           ` Robert A Duff
2008-02-22 14:23 ` Stefan Lucks
2008-02-22 16:52   ` Adam Beneschan
2008-02-22 14:26 ` Robert A Duff
2008-02-22 15:22 ` Stefan Bellon
2008-02-22 23:03   ` Adam Beneschan
2008-02-23 10:19     ` Stefan Bellon
replies disabled

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