From: Maciej Sobczak <see.my.homepage@gmail.com>
Subject: Re: Ada requires too much typing!
Date: Mon, 7 Jun 2010 05:17:16 -0700 (PDT)
Date: 2010-06-07T05:17:16-07:00 [thread overview]
Message-ID: <03f84a0a-e070-43a9-9b68-920345f64f94@r27g2000yqb.googlegroups.com> (raw)
In-Reply-To: op.vdxa48vdz25lew@macpro-eth1.krischik.com
On 7 Cze, 11:25, "Martin Krischik" <krisc...@users.sourceforge.net>
wrote:
> > Considering the performance aspect, the layout of variables within the
> > object is determined *statically*
[...]
> Interesting opinion. Say we have
[...]
You are right here, I got confused by the low-level implementation
details.
There must be a run-time component of the access method for instance
variables from virtually inherited classes. Mea culpa.
I will still take the opportunity to twist my mistake :-) - take it as
a proof that I have never explicitly used virtual inheritance in
professionally written code, even though I *have* used multiple
inheritance occasionally.
Guess what - the default mechanisms always worked as I intended - this
might be an indication that the whole problem is not nearly as
dramatic as you portray it.
In other words, I disagree with your statement that the behavior of C+
+ in this area should be different.
> > Again, that knowledge would not necessarily help them, as the use of
> > virtual inheritance is not automatically justified.
>
> Like the use if virtual destructors is not automaticly justified?
That's right.
> Only:
> count in your source the amount virtual destructors vs. non virtual
> destructors.
OK. Let's take something publicaly verifiable: the YAMI4 project,
which contains some amount of C++ code (analyzed header files):
- All destructors: 28
- Virtual ones : 6
Let's take the SOCI project for comparison:
- All destructors: 61
- Virtual ones : 20
It looks like virtual destructors amount for some 20-30% of all in my
code.
> Why is what you need most not default?
I find that what C++ offers in this area is what I need most of the
time.
Now I even have the scientific and statistical proof for this, as
before this discussion I did not even know the real numbers. :-)
I don't claim that my experiences are representative, but I will take
the risk to claim that if you need all or most of your destructors to
be virtual, then you are probably trying to write Java in C++.
Now, to bring this discussion at least a bit back on topic, I think
that Ada could offer similar mechanisms as C++. The reason is that the
object model in both languages is very similar and in both cases based
on value semantics. In particular, I find it a nuisance that
controlled types must be tagged.
--
Maciej Sobczak * http://www.inspirel.com
YAMI4 - Messaging Solution for Distributed Systems
http://www.inspirel.com/yami4
next prev parent reply other threads:[~2010-06-07 12:17 UTC|newest]
Thread overview: 123+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-28 5:25 Ada requires too much typing! Luis Espinal
2010-05-28 6:47 ` Yannick Duchêne (Hibou57)
2010-05-28 15:52 ` John B. Matthews
2010-05-28 17:31 ` Dmitry A. Kazakov
2010-05-28 19:05 ` Georg Bauhaus
2010-05-28 19:39 ` Dmitry A. Kazakov
2010-05-28 9:48 ` Georg Bauhaus
2010-05-28 10:10 ` Alex R. Mosteo
2010-06-01 21:30 ` Luis Espinal
2010-06-02 11:08 ` Alex R. Mosteo
2010-06-05 19:58 ` Luis Espinal
2010-06-02 13:09 ` Yannick Duchêne (Hibou57)
2010-06-05 20:13 ` Luis Espinal
2010-06-06 4:25 ` Yannick Duchêne (Hibou57)
2010-06-06 8:55 ` Martin Krischik
2010-06-06 10:13 ` Simon Wright
2010-06-06 11:03 ` Dmitry A. Kazakov
2010-06-06 12:04 ` Martin Krischik
2010-06-07 8:34 ` Maciej Sobczak
2010-06-07 9:25 ` Martin Krischik
2010-06-07 12:04 ` Colin Paul Gloster
2010-06-07 12:17 ` Maciej Sobczak [this message]
2010-06-07 12:26 ` Dmitry A. Kazakov
2010-06-07 15:00 ` Martin Krischik
2010-06-08 7:46 ` Maciej Sobczak
2010-06-08 8:53 ` Martin Krischik
2010-06-09 7:50 ` Maciej Sobczak
2010-06-09 8:10 ` Dmitry A. Kazakov
2010-06-09 8:43 ` Maciej Sobczak
2010-06-09 9:24 ` Dmitry A. Kazakov
2010-06-09 13:54 ` Maciej Sobczak
2010-06-09 14:29 ` Dmitry A. Kazakov
2010-06-09 15:02 ` Georg Bauhaus
2010-06-09 15:53 ` Dmitry A. Kazakov
2010-06-09 18:00 ` Yannick Duchêne (Hibou57)
2010-06-09 19:10 ` Dmitry A. Kazakov
2010-06-09 21:09 ` Yannick Duchêne (Hibou57)
2010-06-10 8:07 ` Dmitry A. Kazakov
2010-06-10 8:44 ` Yannick Duchêne (Hibou57)
2010-06-10 9:07 ` Dmitry A. Kazakov
2010-06-10 10:10 ` Georg Bauhaus
2010-06-10 10:28 ` Dmitry A. Kazakov
2010-06-09 21:22 ` Maciej Sobczak
2010-06-09 23:09 ` Yannick Duchêne (Hibou57)
2010-06-10 8:15 ` Dmitry A. Kazakov
2010-06-10 13:37 ` Maciej Sobczak
2010-06-10 13:57 ` Dmitry A. Kazakov
2010-06-09 14:31 ` Yannick Duchêne (Hibou57)
2010-06-09 15:57 ` Dmitry A. Kazakov
2010-06-09 17:51 ` Yannick Duchêne (Hibou57)
2010-06-10 6:13 ` Randy Brukardt
2010-06-10 6:19 ` AdaMagica
2010-06-10 21:59 ` Randy Brukardt
2010-06-10 6:34 ` Vadim Godunko
2010-06-10 6:54 ` Yannick Duchêne (Hibou57)
2010-06-10 7:36 ` Vadim Godunko
2010-06-10 8:21 ` Dmitry A. Kazakov
2010-06-10 8:51 ` Vadim Godunko
2010-06-10 9:20 ` Dmitry A. Kazakov
2010-06-10 8:51 ` Yannick Duchêne (Hibou57)
2010-06-10 22:08 ` Randy Brukardt
2010-06-11 9:13 ` Stephen Leake
2010-06-10 7:20 ` AdaMagica
2010-06-10 8:57 ` Vadim Godunko
2010-06-10 10:12 ` Georg Bauhaus
2010-06-10 13:47 ` Alex R. Mosteo
2010-06-10 19:18 ` Vadim Godunko
2010-06-10 22:08 ` Gautier write-only
2010-06-10 22:17 ` Randy Brukardt
2010-06-11 18:38 ` Simon Wright
2010-06-29 2:13 ` Randy Brukardt
2010-06-11 9:14 ` Stephen Leake
2010-06-11 18:03 ` Jeffrey R. Carter
2010-06-11 9:11 ` Stephen Leake
2010-06-10 7:21 ` Maciej Sobczak
2010-06-10 19:33 ` Simon Wright
2010-06-10 22:23 ` Randy Brukardt
2010-06-07 8:13 ` Maciej Sobczak
2010-06-07 8:35 ` Martin Krischik
2010-06-07 8:43 ` Martin Krischik
2010-06-06 8:06 ` Martin Krischik
2010-06-07 18:30 ` Luis Espinal
2010-06-08 6:43 ` Martin Krischik
2010-06-08 7:10 ` Georg Bauhaus
2010-06-08 9:00 ` Martin Krischik
2010-06-10 13:56 ` Alex R. Mosteo
2010-06-10 14:29 ` J-P. Rosen
2010-06-11 11:57 ` Alex R. Mosteo
2010-06-08 10:10 ` Niklas Holsti
2010-06-08 11:35 ` Georg Bauhaus
2010-06-10 13:58 ` Alex R. Mosteo
2010-06-10 19:45 ` Simon Wright
2010-06-10 20:09 ` Niklas Holsti
2010-06-10 18:21 ` Yannick Duchêne (Hibou57)
-- strict thread matches above, loose matches on Subject: below --
2010-05-26 12:57 Peter C. Chapin
2010-05-26 13:29 ` Ludovic Brenta
2010-05-26 15:56 ` Peter Hermann
2010-05-26 16:12 ` Ludovic Brenta
2010-05-26 18:57 ` Pascal Obry
2010-05-26 19:30 ` Yannick Duchêne (Hibou57)
2010-05-26 14:48 ` Jeffrey R. Carter
2010-05-27 17:10 ` Warren
2010-05-27 22:15 ` Adam Beneschan
2010-05-28 15:26 ` Warren
2010-05-30 0:49 ` BrianG
2010-05-30 7:27 ` Dmitry A. Kazakov
2010-05-30 9:17 ` Yannick Duchêne (Hibou57)
2010-05-30 9:51 ` Simon Wright
2010-06-02 1:42 ` BrianG
2010-05-26 15:23 ` Adam Beneschan
2010-05-26 17:20 ` Georg Bauhaus
2010-05-26 19:33 ` Yannick Duchêne (Hibou57)
2010-05-26 21:55 ` Simon Wright
2010-05-26 23:36 ` Georg Bauhaus
2010-05-27 2:07 ` Fritz Wuehler
2010-05-27 4:19 ` Yannick Duchêne (Hibou57)
2010-05-27 19:51 ` Warren
2010-06-03 16:54 ` Colin Paul Gloster
2010-06-03 16:09 ` Yannick Duchêne (Hibou57)
2010-06-03 16:11 ` Yannick Duchêne (Hibou57)
2010-06-04 11:40 ` Nicolas Cóilin Paul de Gloucester
2010-06-04 13:54 ` Ludovic Brenta
2010-06-04 11:29 ` Nicholas Collin Paul de Gloucester
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox