Re: Array slices and types
- From: Adam Beneschan <adam@xxxxxxxxxx>
- Date: Thu, 21 Aug 2008 07:44:29 -0700 (PDT)
On Aug 21, 1:53 am, "Dmitry A. Kazakov" <mail...@xxxxxxxxxxxxxxxxx>
wrote:
On Thu, 21 Aug 2008 08:26:26 +0300, Niklas Holsti wrote:
But doesn't this example show that it would be useful to have 'Base
also for array types?
For any type, actually.
Consider this language design fault:
procedure Initialize (X : in out S) is
begin
Initialize (T (X));
... -- My stuff
end Initialize;
A call to Initialize should be done automatically, but it is not. So the
parent of S must be explicitly specified and known to all descendant. This
is a really *bad* thing:
package Foo is
type S is new T with private;
private
type S is new Private_Decendant_Of_T with ...;
end Foo;
What would happen if Private_Decendant_Of_T overrode Initialize of T? The
result would be an inability to publicly derive from S any new types if
Initialize should be extended!
S'Base could mend it:
procedure Initialize (X : in out S) is
begin
(S"Base (X)).Initialize; -- Call to parent whatever it be
... -- My stuff
end Initialize;
Sorry, Dmitry, but if you'll pardon the expression, you're a little
off-base here. S'Base and S are subtypes of the same *type*. They
may be different subtypes (have different constraints), but they're
the same type. You're asking for an attribute that would give you a
different type. There may be merit in having such an attribute (I
haven't looked into it closely), but calling it 'Base would be a bad
idea. S'Parent might be better.
Niklas is asking for S'Base to be the unconstrained array subtype of
the (possibly constrained) array subtype S. It would still fit into
the definition of 'Base (3.5(15)). I'm not sure why this wasn't
defined for array subtypes, or for any other type that could have
discriminants; offhand I don't see how this would cause any problems.
-- Adam
.
- Follow-Ups:
- Re: Array slices and types
- From: Randy Brukardt
- Re: Array slices and types
- From: Dmitry A. Kazakov
- Re: Array slices and types
- References:
- Array slices and types
- From: Maciej Sobczak
- Re: Array slices and types
- From: Dmitry A. Kazakov
- Re: Array slices and types
- From: Niklas Holsti
- Re: Array slices and types
- From: Simon Wright
- Re: Array slices and types
- From: Niklas Holsti
- Array slices and types
- Prev by Date: Re: Access to function returning class-wide type
- Next by Date: Re: Opening a file vs. creating if not yet exists
- Previous by thread: Re: Array slices and types
- Next by thread: Re: Array slices and types
- Index(es):
Relevant Pages
|