From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,7a180be12347b9d3 X-Google-Attributes: gid103376,public X-Google-Thread: 1108a1,7a180be12347b9d3 X-Google-Attributes: gid1108a1,public X-Google-ArrivalTime: 2002-02-22 01:21:35 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!fu-berlin.de!uni-berlin.de!tar-alcarin.cbb-automation.DE!not-for-mail From: dmitry@elros.cbb-automation.de (Dmitry A. Kazakov) Newsgroups: comp.lang.ada,comp.object Subject: Re: Merits of re-dispatching Date: Fri, 22 Feb 2002 09:21:34 GMT Message-ID: <3c7607f9.87807140@News.CIS.DFN.DE> References: <3c70b935.501062@News.CIS.DFN.DE> <3c721028.221281@News.CIS.DFN.DE> <3C748B15.7080005@mail.com> <3c74b2a0.415796@News.CIS.DFN.DE> <3C7539CC.4080907@mail.com> NNTP-Posting-Host: tar-alcarin.cbb-automation.de (212.79.194.111) X-Trace: fu-berlin.de 1014369694 4918213 212.79.194.111 (16 [77047]) X-Newsreader: Forte Free Agent 1.21/32.243 Xref: archiver1.google.com comp.lang.ada:20248 comp.object:34902 Date: 2002-02-22T09:21:34+00:00 List-Id: On Thu, 21 Feb 2002 13:17:48 -0500, Hyman Rosen 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 [= 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