comp.lang.ada
 help / color / mirror / Atom feed
From: John English <je@bton.ac.uk>
Subject: Re: controlled type in generic package?
Date: Fri, 09 Feb 2001 10:25:19 +0000
Date: 2001-02-09T10:24:57+00:00	[thread overview]
Message-ID: <3A83C58F.8D891740@bton.ac.uk> (raw)
In-Reply-To: 87r919azac.fsf@deneb.enyo.de

Florian Weimer wrote:
> 
> John English <je@bton.ac.uk> writes:
> 
> > Not only that, but by deriving something from Controlled, you're
> > giving up your ability to derive from anything else. If I want to
> > derive a new type from an existing (non-Controlled) type and add
> > a destructor (Finalize), I have to perform lots of acrobatics and
> > commit all sorts of atrocities on my code to do it!
> 
> It's just an ordinary mixin construction.  Of course, there some
> syntactical overhead involved, but it's straightforward.

Not hard to do, but annoying. A type declaration for the controlled
type, a separate type declaration for the derived type with a controlled
component added in, and if the controlled component's primitives need to
look at any components of the original record, some magic spells involving
access discriminants and view conversions.

This might not bother you, but it feels like acrobatics and atrocities to me.
IMHO this is straightforward in the same sense as OOP in C is straightforward:
"It's just an ordinary pointer-to-array-of-functions construction. Of course,
there's some syntactical overhead involved, but it's straightforward." :-)

-----------------------------------------------------------------
 John English              | mailto:je@brighton.ac.uk
 Senior Lecturer           | http://www.it.bton.ac.uk/staff/je
 Dept. of Computing        | ** NON-PROFIT CD FOR CS STUDENTS **
 University of Brighton    |    -- see http://burks.bton.ac.uk
-----------------------------------------------------------------



  reply	other threads:[~2001-02-09 10:25 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-02-06 11:06 controlled type in generic package? Nils Priebe
     [not found] ` <slrn97vtf5.ho.lutz@taranis.iks-jena.de>
     [not found]   ` <95q19j$9d$1@usenet.rational.com>
2001-02-07 10:11     ` Lutz Donnerhacke
2001-02-07 21:57       ` Mark Lundquist
     [not found]   ` <95p2ab$463$1@nnrp1.deja.com>
2001-02-07 15:08     ` Jean-Pierre Rosen
2001-02-08 15:41       ` Ted Dennison
2001-02-08 18:21         ` Jean-Pierre Rosen
2001-02-08 16:31       ` Florian Weimer
2001-02-08 21:10       ` Brian Rogoff
2001-02-09 10:39         ` Florian Weimer
2001-02-09 17:02           ` Brian Rogoff
2001-02-09 18:45             ` Florian Weimer
2001-02-13  0:32           ` Nick Roberts
2001-02-14  0:30             ` Jon S Anthony
     [not found]               ` <x7vg0hd20cm.fsf@smaug.pushface.org>
     [not found]                 ` <hovk6.96$aw5.304@www.newsranger.com>
2001-02-23 20:50                   ` Simon Wright
     [not found]     ` <95q1fa$9e$1@usenet.rational.com>
2001-02-07 15:28       ` Ted Dennison
2001-02-07 16:29         ` Brian Rogoff
     [not found]           ` <3A82A66D.49DE7EBD@bton.ac.uk>
2001-02-08 15:15             ` Robert Dewar
2001-02-08 16:56             ` Florian Weimer
2001-02-09 10:25               ` John English [this message]
2001-02-09 19:46                 ` Brian Rogoff
2001-02-07 18:52         ` Pat Rogers
2001-02-07 19:23           ` Pat Rogers
2001-02-07 19:50             ` Ted Dennison
2001-02-07 22:52         ` Jean-Pierre Rosen
2001-02-08  9:36           ` dmitry6243
2001-02-09  8:51             ` Jean-Pierre Rosen
2001-02-09 12:28               ` dmitry6243
2001-02-08 19:58           ` Mark Lundquist
2001-02-10  9:54           ` Thomas Wolf
replies disabled

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