comp.lang.ada
 help / color / mirror / Atom feed
From: "Grein, Christoph" <christoph.grein@eurocopter.com>
To: comp.lang.ada@ada.eu.org
Subject: Re: Prefix to 'ACCESS must either statically match... But why?
Date: Mon, 27 Jan 2003 07:41:34 +0100 (MET)
Date: 2003-01-27T07:41:34+01:00	[thread overview]
Message-ID: <mailman.29.1043650173.4961.comp.lang.ada@ada.eu.org> (raw)

> > Could somebody please explain me why is this rule present? I find it
> > very limting. Is this because AR2 bounds are not stored with the
> > object?
> > 
> > Type Stream_Element_Array_access is access all Stream_Element_Array;
> > 
> > AR1 : aliased Stream_Element_Array := ( 2, 4, 5 );
> > AR2 : aliased Stream_Element_Array ( 1 .. 3 ) := ( 2, 4, 5 );
> > 
> > AR1A : Stream_Element_Array_access := AR1'access;
> > 
> > -- Illegal
> > AR2A : Stream_Element_Array_access := AR2'access;
> > 
> > 
> > LRM:3.10.2(27), The nominal subtype of the prefix to 'ACCESS or
> > 'UNCHECKED_ACCESS must either statically match the designated subtype
> > of the expected type or the designated subtype must be discriminated
> > and unconstrained, Continuing
> 
> Well I am a Ada-beginner myself so I might be wrong, but as far as I
> understand strictly typed languages in general "Stream_Element_Array ( 1 .. 3 
)" is a
> new anonymous type which ist not a Stream_Element_Array anymore. A bit like 
typing
> 
> Type Stream_Element_Array_AR2 is new Stream_Element_Array ( 1 .. 3 );
> AR2 : aliased Stream_Element_Array_AR2 := ( 2, 4, 5 );

No, that model is absolutely wrong!

Stream_Element_Array ( 1 .. 3 ) is a subtype of Stream_Element_Array, not a new 
type derived from it.

The difference is that Stream_Element_Array is unconstrained, 
Stream_Element_Array ( 1 .. 3 ) is constrained.

Objects of Stream_Element_Array have their bounds stored.
Objects of Stream_Element_Array ( 1 .. 3 ) have no bounds stored, the bounds are 
known at compile time.

Stream_Element_Array_access is an access type to the unconstrained (first named 
subtype) Stream_Element_Array, so its objects cannot point to objects of the 
constrained subtype.

So they do not statically match.



             reply	other threads:[~2003-01-27  6:41 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-01-27  6:41 Grein, Christoph [this message]
2003-01-27 18:33 ` Prefix to 'ACCESS must either statically match... But why? Martin Krischik
2003-01-27 19:05 ` Jeffrey Carter
  -- strict thread matches above, loose matches on Subject: below --
2003-01-30  6:20 Grein, Christoph
2003-01-29 12:15 Grein, Christoph
2003-01-29 11:57 Grein, Christoph
2003-01-29  6:50 Grein, Christoph
2003-01-29 11:30 ` Wojtek Narczynski
2003-01-27  7:12 Grein, Christoph
2003-01-27 15:46 ` Wojtek Narczynski
2003-01-27 22:32   ` James S. Rogers
2003-01-28  2:51     ` Wojtek Narczynski
2003-01-28  3:19       ` James S. Rogers
2003-01-28 12:14         ` Wojtek Narczynski
2003-01-28 14:43           ` James S. Rogers
2003-01-28 20:20             ` Wojtek Narczynski
2003-01-28 21:36               ` James S. Rogers
2003-01-29  2:09                 ` tmoran
2003-01-29 11:21                 ` Wojtek Narczynski
2003-01-25 22:31 Wojtek Narczynski
2003-01-26  9:57 ` Martin Krischik
2003-01-27 19:30 ` Vadim Godunko
replies disabled

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