From: brangdon@cix.co.uk (Dave Harris)
Subject: Re: Merits of re-dispatching
Date: Mon, 18 Feb 2002 19:47 +0000 (GMT Standard Time)
Date: 2002-02-18T19:47:00+00:00 [thread overview]
Message-ID: <memo.20020218194741.37959A@brangdon.madasafish.com> (raw)
In-Reply-To: 3c70b935.501062@News.CIS.DFN.DE
dmitry@elros.cbb-automation.de (Dmitry A. Kazakov) wrote (abridged):
> > This should produce B.Foo B.Foo A.Foo A.Foo.
>
> With my correction it will produce:
>
> B.Foo B.Foo B.Foo A.Foo.
Right. So you see that Ada is different from C++, and your description of
C++ in Ada terms gives the wrong results. You said earlier that:
That is one of several possible interpretation of what happens
in C++ using Ada terms.
but the other interpretation you offered doesn't correspond to how C++
behaves.
That was my only point, really.
> Why on earth a call to Foo from B.Finalize should dispatch? The type
> is known, so there is only one version of Foo to be called.
Let's not muddle the issue with compiler optimisations. A C++ compiler is
allowed to replace dynamic dispatch with static if it can deduce the
dynamic type of the object at compile-time. Constructors are not a special
case (although the deduction is unusually simple for them). All of this is
under the "as if" rule. C++ must behave as if it dynamically dispatched in
constructors.
Dave Harris, Nottingham, UK | "Weave a circle round him thrice,
brangdon@cix.co.uk | And close your eyes with holy dread,
| For he on honey dew hath fed
http://www.bhresearch.co.uk/ | And drunk the milk of Paradise."
next prev parent reply other threads:[~2002-02-18 19:47 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 ` Dave Harris [this message]
2002-02-19 9:20 ` Merits of re-dispatching 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
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