comp.lang.ada
 help / color / mirror / Atom feed
From: dmitry@elros.cbb-automation.de (Dmitry A. Kazakov)
Subject: Re: Merits of re-dispatching
Date: Mon, 25 Feb 2002 08:51:57 GMT
Date: 2002-02-25T08:51:57+00:00	[thread overview]
Message-ID: <3c79f60b.1053515@News.CIS.DFN.DE> (raw)
In-Reply-To: 3C767902.2090908@mail.com

On Fri, 22 Feb 2002 11:59:46 -0500, Hyman Rosen <hyrosen@mail.com>
wrote:

>Dmitry A. Kazakov wrote:
>> That's the whole point. Dispatching vs. not dispatching is not an
>> implementation detail, but a part of the contract. It seems that we
>> are using different definitions of dispatch, thus we'll never agree.
>
>Yes, it's part of the contract, and in C++ it always dispatches.
>There is only one definition of dispatch that I'm aware of - when
>a virtual method is called through a pointer to an object, the method
>actually called is determined by the actual type of the object, not
>the declared type of the pointer.

Compare: the actual type is class wide [no matter pointers, reference,
value], the parameter is dispatching.

>In C++, it is this actual type which
>changes as control progresses through the hierarchy of constructors
>or destructors.
>
>> No. I said exactly the opposite:
>> "The behaviour of B::~B is safe."
>
>Here is what you said in your original message:
>	C++ and Ada 95 support re-dispatching,
>	which I think is inherently unsafe

Yes this is may point that re-dispatching is unsafe. Also my point is
that destructors in C++ are safe because [in your terminology] they
dispatche as if the actual type were the formal type. This behaviour
is safe, because [according to my terminology] they do not dispatch at
all. Which IMO should be always so in a specific subroutine
[destructors cannot be class wide].

>> I definitely do not want that self-contradictory mixture
> > of types and their closures as in C++.
>
>I don't even know what this means. C++ does not have
>"self-contradictory" types.

This means, I quote you :

"... actual type which changes as control progresses through the
hierarchy of constructors or destructors."

If there is no distinction between specific and class wide types, then
somersaults like morphing types are inevitable. One cannot mix sets
and its elements without a punishment.

Regards,
Dmitry Kazakov



  reply	other threads:[~2002-02-25  8:51 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-02-07 10:26 Merits of re-dispatching [LONG] Dmitry A. Kazakov
2002-02-07 15:03 ` Hyman Rosen
2002-02-08  1:29   ` Matthew Heaney
2002-02-08  9:16     ` Dmitry A. Kazakov
2002-02-08 18:30       ` Hyman Rosen
2002-02-09  0:10         ` Matthew Heaney
2002-02-12  8:32         ` Dmitry A. Kazakov
2002-02-12 21:37           ` Hyman Rosen
2002-02-13  9:29             ` Dmitry A. Kazakov
2002-02-13 14:32               ` Hyman Rosen
2002-02-13 19:58           ` Dave Harris
2002-02-14 15:06             ` Dmitry A. Kazakov
2002-02-16 12:10               ` Dave Harris
2002-02-18  8:57                 ` Dmitry A. Kazakov
2002-02-18 19:47                   ` Merits of re-dispatching Dave Harris
2002-02-19  9:20                     ` Dmitry A. Kazakov
2002-02-21  5:49                       ` Hyman Rosen
2002-02-21  9:04                         ` Dmitry A. Kazakov
2002-02-21 18:17                           ` Hyman Rosen
2002-02-22  9:21                             ` Dmitry A. Kazakov
2002-02-22 16:59                               ` Hyman Rosen
2002-02-25  8:51                                 ` Dmitry A. Kazakov [this message]
2002-02-08 23:51       ` Merits of re-dispatching [LONG] Matthew Heaney
2002-02-12  9:02         ` Dmitry A. Kazakov
2002-02-07 23:40 ` Nick Roberts
2002-02-08  8:56   ` Dmitry A. Kazakov
2002-02-08  1:06 ` Matthew Heaney
2002-02-08  9:48   ` Dmitry A. Kazakov
2002-02-09  0:16     ` Matthew Heaney
2002-02-08 18:10   ` Hyman Rosen
2002-02-09  0:41     ` Matthew Heaney
2002-02-08 18:33 ` Nick Roberts
2002-02-09  4:07   ` Nick Roberts
2002-02-12 10:13   ` Dmitry A. Kazakov
2002-02-14 20:57 ` Tucker Taft
2002-02-15 15:43   ` 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