comp.lang.ada
 help / color / mirror / Atom feed
From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: Generic Zero Length Array
Date: Sat, 23 Feb 2008 09:27:26 -0500
Date: 2008-02-23T09:27:26-05:00	[thread overview]
Message-ID: <wccablrpx2p.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: 7cd05c2a-d67a-4623-a9dc-67e357877f48@e6g2000prf.googlegroups.com

Adam Beneschan <adam@irvine.com> writes:

> Way back before Ada 95, someone made a proposed language array to add
> a "null array" aggregate to the language, so that you could write an
> aggregate to represent a zero-element array without needing a fake
> value for the elements.  I thought this was a great idea and could
> never understand why it wasn't adopted.  It would have solved the
> problem here.  But the <> syntax of Ada 2005 obviates the need for
> something like that.

I still think it's a language design flaw that you can't write a
zero-element or one-element positional aggregate.

>...I don't think we need "null record" (i.e. in
> aggregates) any more either, although certainly nobody is going to
> suggest removing it.

Why don't we need that?

> [Actually, there's one case where you still can't specify a null array
> aggregate, and that's where the index type is either "mod 1" or an
> enumeration type with one value:
>
>          type Enum is (This_One);
>          type Arr is array (Enum range <>) of Anything;
>
> Now go ahead and try to specify a zero-element array aggregate of type
> Arr.  You can't.

Right.  Not just aggregates -- you can't create any zero-element array
of type Arr.

>...But this is a pretty pathological case so it's not
> worth trying to change the language for it.]

If it were worth it, what would be the best change?
I suppose ranges could be characterized by 'First/'Length,
instead of 'First/'Last.  And eliminate 'Last from the language.
Or else say 'Last raises Constraint_Error if 'First = 'Base'First
and 'Length = 0.

- Bob



  parent reply	other threads:[~2008-02-23 14:27 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
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 [this message]
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