From: "Jeffrey R. Carter" <spam.jrcarter.not@spam.not.acm.org>
Subject: Re: Preventing private procedure visibility being made public through extension
Date: Sun, 21 May 2017 23:09:57 +0200
Date: 2017-05-21T23:09:57+02:00 [thread overview]
Message-ID: <ofsvgp$sjc$1@dont-email.me> (raw)
In-Reply-To: <f4506d58-f182-45cf-a3ac-830a6ef790d8@googlegroups.com>
On 05/21/2017 10:21 PM, Jere wrote:
>
> I just don't
> like using access types if I can avoid them.
Of course you can avoid them.
> So something like:
>
> type My_Type is tagged limited private;
> function Get_Libaray_Component
> (Obj : in out My_Type)
> return not null access Library_Type;
> private
> type My_Type is new Other_Library_Type with record
> Base : aliased Library_Type;
> end record;
There are a finite number of operations defined for Library_Type, and, as you
said, a smaller number that make sense for your abstraction. So you simply
define equivalent operations for My_Type that call the appropriate operations
for Library_Type with the Base component. No access types, simple, safe, and clear.
--
Jeff Carter
"I soiled my armor, I was so scared."
Monty Python & the Holy Grail
71
next prev parent reply other threads:[~2017-05-21 21:09 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-20 17:33 Preventing private procedure visibility being made public through extension Jere
2017-05-20 20:13 ` AdaMagica
2017-05-20 21:55 ` Jere
2017-05-20 20:32 ` Dmitry A. Kazakov
2017-05-20 22:51 ` Jere
2017-05-21 0:51 ` Jere
2017-05-21 9:16 ` Chris Moore
2017-05-21 22:55 ` Jere
2017-05-21 8:44 ` Dmitry A. Kazakov
2017-05-21 12:19 ` J-P. Rosen
2017-05-21 12:53 ` Dmitry A. Kazakov
2017-05-21 20:06 ` Jere
2017-05-21 21:07 ` Dmitry A. Kazakov
2017-05-21 22:28 ` Jere
2017-05-22 8:52 ` Dmitry A. Kazakov
2017-05-22 13:33 ` AdaMagica
2017-05-22 13:43 ` AdaMagica
2017-05-22 21:17 ` Randy Brukardt
2017-05-25 4:06 ` Jere
2017-05-25 19:39 ` Randy Brukardt
2017-05-25 22:53 ` Jere
2017-05-25 22:57 ` Jere
2017-05-26 20:46 ` Randy Brukardt
2017-05-26 22:35 ` Simon Wright
2018-05-20 11:22 ` Simon Wright
2018-05-20 12:03 ` Jere
2017-05-26 22:58 ` Jeffrey R. Carter
2017-05-30 21:15 ` Randy Brukardt
2017-06-02 1:07 ` Jere
2017-06-02 7:31 ` Dmitry A. Kazakov
2017-06-02 8:09 ` Mark Lorenzen
2017-06-02 11:31 ` Simon Wright
2017-05-22 21:12 ` Randy Brukardt
2017-05-23 7:38 ` Dmitry A. Kazakov
2017-05-21 18:14 ` Robert Eachus
2017-05-21 20:21 ` Jere
2017-05-21 21:09 ` Jeffrey R. Carter [this message]
2017-05-21 22:46 ` Jere
2017-05-22 21:24 ` Jeffrey R. Carter
2017-05-25 3:45 ` Jere
2017-05-21 21:20 ` Dmitry A. Kazakov
2017-05-21 21:45 ` Jere
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox