comp.lang.ada
 help / color / mirror / Atom feed
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."



  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