From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Private discrete type as index
Date: Sat, 11 Jan 2003 13:22:51 +0100
Date: 2003-01-11T13:22:51+01:00 [thread overview]
Message-ID: <avp29v$hkrki$1@ID-77047.news.dfncis.de> (raw)
In-Reply-To: cRQT9.21756$F63.404030@news.xtra.co.nz
AG wrote:
> package test is
>
> type X is new Integer; -- What I'd like here is "limited private" instead
> of "new integer"
>
> type Test is array(X) of Boolean;
>
> function "+"(Left: X) return X; -- Unary increment (however that may be
> implemented)
>
> function "+"(Left:X; N: Integer) return X; -- Shift by N positions (does
> not equal N times other "+")
>
> private
>
> -- Defiinition of "X" here whatever it may be
>
> end test;
>
> The code above compiles fine. Replacing "new Integer" with "limited
> private" does not.
>
> But, if it did, it would allow the user of the package to do things like
> 10th position from
>
> wherever the index is now and it would be the responsibility of the
> implementation
>
> to know what/where it is. At the same time, the client package would have
> no clue
>
> as to what the type is or be able to operate on it directly (only through
> any functions
>
> provided by the package which was the whole point).
Ada does not have user index types other than publicly derived from discrete
types. "limited private" is not such a type. You could make a sort of
private type out of a discrete type by disallowing some of its predefined
operations (making them abstract), but you are unable to make it limited,
because ":=" is not overridable. Neither can you expose a private type as
an array. Alas, ADT is far incomplete in Ada.
--
Regards,
Dmitry A. Kazakov
www.dmitry-kazakov.de
next prev parent reply other threads:[~2003-01-11 12:22 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-01-11 21:42 Private discrete type as index AG
2003-01-11 2:34 ` James S. Rogers
2003-01-12 0:09 ` AG
2003-01-11 7:16 ` James S. Rogers
2003-01-12 5:47 ` AG
2003-01-11 12:22 ` Dmitry A. Kazakov [this message]
2003-01-11 14:36 ` Charles H. Sampson
2003-01-12 19:23 ` Keith Thompson
2003-01-12 19:48 ` tmoran
2003-01-15 16:45 ` Dmitry A. Kazakov
2003-01-18 6:24 ` AG
2003-01-17 14:14 ` tmoran
2003-01-19 1:38 ` AG
2003-01-18 8:36 ` tmoran
2003-01-19 6:06 ` AG
2003-01-17 16:28 ` Dmitry A. Kazakov
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox