comp.lang.ada
 help / color / mirror / Atom feed
From: "AG" <ang@xtra.co.nz>
Subject: Re: Private discrete type as index
Date: Sat, 11 Jan 2003 21:47:29 -0800
Date: 2003-01-11T21:47:29-08:00	[thread overview]
Message-ID: <cRQT9.21756$F63.404030@news.xtra.co.nz> (raw)
In-Reply-To: TwPT9.105450$hK4.8563792@bgtnsc05-news.ops.worldnet.att.net


"James S. Rogers" <jimmaureenrogers@worldnet.att.net> wrote in message
news:TwPT9.105450$hK4.8563792@bgtnsc05-news.ops.worldnet.att.net...

> "AG" <ang@xtra.co.nz> wrote in message
> > However, what if you want to let your clients know that
> > that the structure is indeed an array and provide appropriate
> > operations on the index but prevent them from directly
> > manipulating it?

>
> I am unclear what you mean by "providing appropriate operations"
> without allowing direct manipulation. This sounds like an iterator to
> me. Please describe what you have in mind instead.
>

OK, here it is:

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).





  reply	other threads:[~2003-01-12  5:47 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 [this message]
2003-01-11 12:22         ` Dmitry A. Kazakov
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