comp.lang.ada
 help / color / mirror / Atom feed
From: Maciej Sobczak <see.my.homepage@gmail.com>
Subject: Re: Limited use for limited with?
Date: Tue, 28 Sep 2010 14:57:49 -0700 (PDT)
Date: 2010-09-28T14:57:49-07:00	[thread overview]
Message-ID: <67044906-dacc-4526-b3f6-27e5323ab8fc@n3g2000yqb.googlegroups.com> (raw)
In-Reply-To: 1eug9v5h5mf8d$.ud00hrz48lyr.dlg@40tude.net

On 28 Wrz, 15:45, "Dmitry A. Kazakov" <mail...@dmitry-kazakov.de>
wrote:

> > Hiding the use of access values behind the scenes (by virtue of tagged
> > types being always passed by reference) would obstruct the code
> > without clear benefit.
>
> The benefit is clear - no access types.

There are still access types. The fact that they are not explicitly
seen in operation signatures just makes it more obscure. No benefit.

Consider:

   procedure Register (X : in Object'Class);

X will be passed by reference, but there is still nothing in the
signature (apart from the name of the operation) that would suggest
that the reference will be leaked out of the operation's scope. So the
user does this:

declare
   X : My_Concrete_Object;
begin
   Register (X);
endl;

and bang, everything breaks into pieces.

Whereas this:

   procedure Register (X : Object_Access);

at least forces the user to think about scopes. I therefore consider
it to be a safer construct.

> You should register the object itself rather than its pointer. Use a
> constructing function which registers the object by placing it in a list or
> do an explicit call to Register.

No way. There are many Registers and it's up to the user to decide
where the given object should be registered; constructor has no such
knowledge.
And *when* it should be registered, which is not necessarily at
construction time.

> I tend to avoid "all" everywhere I can.

Apparently here I cannot.

--
Maciej Sobczak * http://www.inspirel.com



  reply	other threads:[~2010-09-28 21:57 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-28  7:37 Limited use for limited with? Maciej Sobczak
2010-09-28  9:04 ` Alex R. Mosteo
2010-09-30  7:24   ` Stephen Leake
2010-09-30  9:21     ` Alex R. Mosteo
2010-09-28  9:18 ` Ludovic Brenta
2010-09-28 12:59   ` Maciej Sobczak
2010-09-28 13:45     ` Dmitry A. Kazakov
2010-09-28 21:57       ` Maciej Sobczak [this message]
2010-09-29  6:03         ` Ludovic Brenta
2010-09-29  8:25           ` Maciej Sobczak
2010-09-29  7:51         ` Dmitry A. Kazakov
2010-09-29  8:38           ` Maciej Sobczak
2010-09-29  9:16             ` Dmitry A. Kazakov
2010-09-29 12:22               ` Maciej Sobczak
2010-09-29 13:41                 ` Dmitry A. Kazakov
2010-09-29 15:07                   ` Georg Bauhaus
2010-09-29 19:22                     ` Dmitry A. Kazakov
2010-09-29 20:51                   ` Maciej Sobczak
2010-09-29 21:18                     ` Dmitry A. Kazakov
2010-10-05  7:35                     ` Randy Brukardt
2010-10-08  8:05                       ` Maciej Sobczak
2010-10-09  6:29                         ` Randy Brukardt
2010-10-05  7:25             ` Randy Brukardt
2010-10-08  8:23               ` Maciej Sobczak
2010-10-09  6:13                 ` Randy Brukardt
2010-10-10 14:13                   ` Maciej Sobczak
2010-10-11  6:23                     ` Randy Brukardt
2010-10-12 19:29                       ` Maciej Sobczak
2010-10-12 20:19                         ` Dmitry A. Kazakov
2010-10-13  2:09                         ` Randy Brukardt
2010-10-13  8:44                           ` Georg Bauhaus
2010-10-15  0:59                             ` Randy Brukardt
2010-10-13  9:43                           ` Maciej Sobczak
2010-09-28 15:15     ` Ludovic Brenta
2010-09-28 22:04       ` Maciej Sobczak
2010-09-28 15:54   ` Robert A Duff
2010-09-30  7:27   ` Stephen Leake
2010-09-30  7:33     ` Ludovic Brenta
2010-09-30 16:03     ` Adam Beneschan
2010-10-07 11:55       ` Stephen Leake
2010-10-07 18:27         ` Martin Krischik
2010-10-07 21:30           ` Adam Beneschan
2010-10-09  6:29             ` Martin Krischik
2010-10-09 18:35               ` Robert A Duff
2010-10-08  0:07           ` Randy Brukardt
2010-10-09  6:21             ` Martin Krischik
2010-09-28  9:32 ` Vadim Godunko
2010-09-28 11:34 ` stefan-lucks
2010-09-28 13:15   ` stefan-lucks
2010-09-28 16:55 ` Adam Beneschan
2010-09-28 17:31   ` Robert A Duff
2010-09-28 19:24     ` Adam Beneschan
2010-09-28 20:32       ` Vadim Godunko
2010-09-28 21:32         ` Adam Beneschan
replies disabled

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