comp.lang.ada
 help / color / mirror / Atom feed
From: heilig@iname.com (Brian_Heilig)
Subject: Re: OOP Language for OS Development
Date: 23 Apr 2004 16:03:22 -0700
Date: 2004-04-23T16:03:22-07:00	[thread overview]
Message-ID: <ba03b545.0404231503.3ddeac5a@posting.google.com> (raw)
In-Reply-To: 1082738747.300309@master.nyc.kbcfp.com

Hyman Rosen <hyrosen@mail.com> wrote in message news:<1082738747.300309@master.nyc.kbcfp.com>...
> Georg Bauhaus wrote:
> > How would you write "once" routines in C++?
> 
> With a static method containing a static value, of course.
> 
> class UponATime
> {
>      static double Once(/* args */)
>      {
>          static double value = /* some calculation */;
>          return value;
>      }
> };

You are nowhere near the expressivity of once routines:
1. The body of `Once' will be executed with each call except for the
stuff after the static declaration. In other words, you must put all
of your calculation behind the equal sign!
2. You still need once per thread, once per object, and manual once
functions.

> It appears from my looking up what once functions do,
> that arguments to the call are irrelevant for determining
> whether it should be re-executed. If so, that's another
> example of a hideous language design choice made by Eiffel.

This is of course a consequence of your misunderstanding of once
functions.

> > How about the fine grained visibility control (where each feature
> > can be made visible to only a specified set of types)?
> 
> Speaking of hideous design decisions. This whole concept
> of classes having fine-grained dictatorial control over
> whom they allow access to their innards is more than a
> little silly.

You're funny.

> template <typename T>
> struct C
> {
>      T foo(T x);
>      virtual T bar(T x) = 0;
> };

You missed the constrained generic parameter. G -> T means that G is
the generic type and it must conform to T. I don't think C++ templates
can emulate constrained generics yet, but I could be wrong.

C++ will never reach the expressive power of Eiffel, but then again,
you can't make an Eiffel compiler solve factorials, so maybe you win?

Brian



  parent reply	other threads:[~2004-04-23 23:03 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-04-15  5:53 OOP Language for OS Development KingIshu
2004-04-15  8:02 ` Martin Krischik
2004-04-15 12:25 ` Ioannis Vranos
2004-04-15 12:49   ` Ioannis Vranos
2004-04-15 12:39 ` Thomas Gagné
2004-04-15 14:32 ` jeffc
2004-04-15 14:45 ` Luke Guest
2004-04-17 16:30 ` Ender Everett
2004-04-19  1:53 ` EventHelix.com
2004-04-19  7:25   ` Martin Krischik
2004-04-19  8:35   ` Jean-Pierre Rosen
2004-04-19  9:16     ` Ioannis Vranos
2004-04-19 11:15       ` Jean-Pierre Rosen
2004-04-19 11:32       ` Martin Krischik
2004-04-19 17:36       ` Christopher Benson-Manica
2004-04-19 11:09   ` Philippe Ribet
2004-04-22  7:34     ` Calum
2004-04-22 10:48       ` John English
2004-04-23  8:36       ` Philippe Ribet
2004-04-23  9:55         ` Calum
2004-04-23 14:30           ` Steven Wurster
2004-04-23 15:04             ` Hyman Rosen
2004-04-23 22:08               ` Brian_Heilig
2004-04-23 22:33                 ` Hyman Rosen
2004-04-24 12:53                   ` Robert C. Martin
2004-04-25  1:25                     ` Steven Wurster
2004-04-25 12:30                       ` Robert C. Martin
2004-04-24 19:58                   ` Anthony Weissenberger
2004-04-25  2:24                     ` Hyman Rosen
2004-04-24  0:01               ` Steven Wurster
2004-04-24 15:27             ` JKop
2004-04-24 21:41               ` Greg C
2004-04-24 22:17               ` Steven Wurster
2004-04-29 17:43               ` Brian_Heilig
2004-04-23 16:22           ` Georg Bauhaus
2004-04-23 16:45             ` Hyman Rosen
2004-04-23 20:13               ` Georg Bauhaus
2004-04-23 21:18                 ` Hyman Rosen
2004-04-24 10:33                   ` Georg Bauhaus
2004-04-25  2:27                     ` Hyman Rosen
2004-04-23 23:03               ` Brian_Heilig [this message]
2004-04-25  2:42                 ` Hyman Rosen
2004-05-04 18:37                   ` Dr Chaos
2004-05-05 11:58                   ` Ged
2004-05-05 12:28                     ` Thomas Gagné
2004-05-06  9:35                       ` Ged
2004-04-24  0:10               ` Steven Wurster
2004-04-25  2:37                 ` Hyman Rosen
2004-04-24  1:00 ` Brian_Heilig
2004-04-26  3:43   ` Berend de Boer
2004-04-26  4:17     ` Christopher Browne
2004-04-26 21:52       ` Berend de Boer
2004-05-04  4:14     ` Richard  Riehle
2004-05-04 21:15       ` Berend de Boer
2004-04-28 19:53   ` Philippe Ribet
2004-04-29  8:32     ` Georg Bauhaus
2004-04-30 17:48       ` Philippe Ribet
2004-04-29 17:39     ` Brian_Heilig
     [not found]       ` <1402879.WneVss6BD6@linux1.krischik.com>
     [not found]         ` <ba03b545.0404300503.376243c8@posting.google.com>
     [not found]           ` <c6tk6v$amm$1@news.BelWue.DE>
2004-04-30 13:46             ` Preben Randhol
2004-04-30 19:30             ` Steven Wurster
2004-04-24 22:09 ` Thomas Gagné
2004-04-25  2:17   ` Hyman Rosen
2004-04-25 16:31     ` Alexander E. Kopilovich
2004-04-25 16:58     ` Isaac Gouy
2004-04-26  0:01       ` Cesar Rabak
2004-04-26  6:14         ` Isaac Gouy
2004-04-26  2:06       ` Thomas Gagné
2004-04-25 16:29   ` Alexander E. Kopilovich
2004-04-26  4:17   ` Christopher Browne
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox