comp.lang.ada
 help / color / mirror / Atom feed
From: dmitry@elros.cbb-automation.de (Dmitry A. Kazakov)
Subject: Re: Merits of re-dispatching
Date: Fri, 22 Feb 2002 09:21:34 GMT
Date: 2002-02-22T09:21:34+00:00	[thread overview]
Message-ID: <3c7607f9.87807140@News.CIS.DFN.DE> (raw)
In-Reply-To: 3C7539CC.4080907@mail.com

On Thu, 21 Feb 2002 13:17:48 -0500, Hyman Rosen <hyrosen@mail.com>
wrote:

>Dmitry A. Kazakov wrote:
>> OK, it dispatches as if it didn't. Therefore I say that it does not.
>
>Well, you can say anything you like, but it certainly does dispatch
>using the type of the constructor or destructor which is running.
>
>> What happens internally is of no interest.
>
>If that is so, then stop saying that it does not dispatch, because
>that is true *only* internally.

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.

>> The viewpoint of C++ language, but I am not talking about C++
>> definition of "dispatch" and its implementation issues.
>
>You began this discussion by claiming that the equivalent of
>redispatching from Finalize was unsafe in C++,

No. I said exactly the opposite:

"The behaviour of B::~B is safe."

I.e. that C++ behaviour is safe in destructors, because it does not
<dispatch> [= dispatches as if it didn't].

>and I have been
>correcting your mistaken impressions about C++ ever since.
>This has nothing whatever to do with implementations of C++,
>only the definition of its behavior according to its standard.
>
>> I still prefer a model where types of objects are not arbitrarily
>> changed [no matter physically or mentally] depending on what kind of
>> method is used.
>
>You may prefer this, but that is not the way C++ works. It is the
>way Ada works, which leads to the problem you originally noticed,
>of redispatching to code which manipulates already Finalized members.

The single problem with Ada approach is that its application was in my
view not enough puristic and consequent as it could be. Namely, no
re-dispatching should be allowed at all. I definitely do not want that
self-contradictory mixture of types and their closures as in C++.

Regards,
Dmitry Kazakov



  reply	other threads:[~2002-02-22  9:21 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 [this message]
2002-02-22 16:59                               ` Hyman Rosen
2002-02-25  8:51                                 ` Dmitry A. Kazakov
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