comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: discriminant questions
Date: Tue, 20 Sep 2011 14:57:23 +0200
Date: 2011-09-20T14:57:23+02:00	[thread overview]
Message-ID: <1gti2q424e3tt$.18e95xse1r7j8$.dlg@40tude.net> (raw)
In-Reply-To: 3d49749a-1da5-49b9-bc68-5d9befb4ed62@hb5g2000vbb.googlegroups.com

On Tue, 20 Sep 2011 05:31:34 -0700 (PDT), AdaMagica wrote:

>> P.S. I also see little or no point in using "accessors". Primitive
>> operations Set and Get would be as good/bad.
> 
> No, here it's you who misunderstands. Get is still present and returns
> an accessor instead of an access type and thus makes accesses safe (no
> way to deallocate the accessed object). And Get *is* primitive.

Get that returns an independent type breaks inheritance.

Without accessor you have two hierarchies

Object : T <-- S  <-- Q
Handles : T_Handle <-- S_Handle <-- Q_Handle

with accessors you add here a third one:

Accessors : Ref_T <-- Ref_S  <-- Ref_Q

Now, because Ada does not support MD in any usable form, the above would
quickly turn into an utter mess. Get a primitive operation of T_Handle is
contravariant in its result, it will always return Ref_T or at best
Ref_T'Class. It cannot return Ref_S.

> And with reference types and objects in Ada 2012, there is no more
> need for explicit dereference:

What is wrong with Get returning the target: P.Get?

The accessor-kludge does not eliminate anything, it does dereference the
reference it has first introduced!

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  reply	other threads:[~2011-09-20 12:57 UTC|newest]

Thread overview: 89+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-17 16:30 discriminant questions ytomino
2011-09-17 17:19 ` Dmitry A. Kazakov
2011-09-17 17:46   ` ytomino
2011-09-17 19:41     ` Dmitry A. Kazakov
2011-09-17 22:55       ` ytomino
2011-09-18  8:50         ` Dmitry A. Kazakov
2011-09-18 10:54           ` ytomino
2011-09-18 11:35             ` Dmitry A. Kazakov
2011-09-18 12:41               ` ytomino
2011-09-18 13:17                 ` Dmitry A. Kazakov
2011-09-18 16:22                   ` ytomino
2011-09-18 16:32                   ` ytomino
2011-09-18 18:15                     ` Dmitry A. Kazakov
2011-09-18 23:44                       ` ytomino
2011-09-19  7:27                         ` Dmitry A. Kazakov
2011-09-18 14:43               ` Dmitry A. Kazakov
2011-09-18 16:46               ` Robert A Duff
2011-09-18 18:01                 ` Dmitry A. Kazakov
2011-09-18 19:20                   ` Maciej Sobczak
2011-09-19  7:39                     ` Dmitry A. Kazakov
2011-09-19 20:00                       ` Maciej Sobczak
2011-09-20  7:33                         ` Dmitry A. Kazakov
2011-09-20 15:45                           ` Maciej Sobczak
2011-09-20 16:48                             ` Dmitry A. Kazakov
2011-09-20 20:19                               ` Maciej Sobczak
2011-09-21  7:48                                 ` Dmitry A. Kazakov
2011-09-21 20:51                                   ` Maciej Sobczak
2011-09-22  8:07                                     ` Dmitry A. Kazakov
2011-09-22 20:57                                       ` Maciej Sobczak
2011-09-23  7:59                                         ` Dmitry A. Kazakov
2011-09-23 10:57                                           ` Georg Bauhaus
2011-09-23 22:30                                           ` Randy Brukardt
2011-09-23 22:50                                           ` Randy Brukardt
2011-09-24  6:46                                             ` Dmitry A. Kazakov
2011-09-26 22:48                                               ` Randy Brukardt
2011-09-27  8:10                                                 ` Dmitry A. Kazakov
2011-09-27 10:18                                                   ` Georg Bauhaus
2011-09-27 12:14                                                     ` Dmitry A. Kazakov
2011-09-27 15:11                                                       ` Georg Bauhaus
2011-09-27 15:38                                                         ` Dmitry A. Kazakov
2011-09-27 18:06                                                           ` Georg Bauhaus
2011-09-27 19:06                                                             ` Dmitry A. Kazakov
2011-09-29  0:01                                                               ` Georg Bauhaus
2011-09-29  8:26                                                                 ` Dmitry A. Kazakov
2011-09-30  1:24                                                                   ` Randy Brukardt
2011-09-30  8:10                                                                     ` Dmitry A. Kazakov
2011-09-30 10:07                                                                   ` Georg Bauhaus
2011-09-30 12:38                                                                     ` Dmitry A. Kazakov
2011-09-30 17:40                                                                       ` Georg Bauhaus
2011-09-30 18:55                                                                         ` Dmitry A. Kazakov
2011-09-23  9:23                                       ` Stephen Leake
2011-09-23  9:48                                         ` Dmitry A. Kazakov
2011-09-23 22:42                                           ` Randy Brukardt
2011-09-24  6:56                                             ` Dmitry A. Kazakov
2011-09-26 22:43                                               ` Randy Brukardt
2011-09-24 10:47                                             ` Stephen Leake
2011-09-24 12:54                                       ` Simon Wright
2011-09-24 14:46                                         ` Dmitry A. Kazakov
2011-09-24 16:21                                           ` Simon Wright
2011-09-24 16:43                                             ` Dmitry A. Kazakov
2011-09-22  2:52                                   ` Randy Brukardt
2011-09-22  8:11                                     ` Dmitry A. Kazakov
2011-09-20  0:01           ` Randy Brukardt
2011-09-20  7:38             ` Dmitry A. Kazakov
2011-09-20 11:11               ` AdaMagica
2011-09-20 12:09                 ` Dmitry A. Kazakov
2011-09-20 12:31                   ` AdaMagica
2011-09-20 12:57                     ` Dmitry A. Kazakov [this message]
2011-09-20 23:28                       ` ytomino
2011-09-21  5:03                         ` AdaMagica
2011-09-21  8:08                         ` Dmitry A. Kazakov
2011-09-21 10:03                           ` Georg Bauhaus
2011-09-21 10:29                             ` Dmitry A. Kazakov
2011-09-22  3:21                           ` Randy Brukardt
2011-09-22  3:05                   ` Randy Brukardt
2011-09-19 23:35         ` Randy Brukardt
2011-09-20 21:39           ` ytomino
2011-09-22  3:32             ` Randy Brukardt
2011-09-18 16:32 ` ytomino
2011-09-19 14:46   ` ytomino
2011-09-19 15:14     ` Dmitry A. Kazakov
2011-09-19 17:49       ` ytomino
2011-09-20  7:29         ` Georg Bauhaus
2011-09-20 19:50           ` ytomino
2011-09-20  8:08         ` Dmitry A. Kazakov
2011-09-20 18:47           ` ytomino
2011-09-21  8:16             ` Dmitry A. Kazakov
2011-09-21  9:55               ` ytomino
2011-09-22  3:26                 ` Randy Brukardt
replies disabled

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