comp.lang.ada
 help / color / mirror / Atom feed
From: Hyman Rosen <hyrosen@mail.com>
Subject: Re: Implicit Instantiations - was: Re: Why is Ada NOT a good choice for  a beginner to programming?
Date: Tue, 14 Jan 2003 16:12:58 -0500
Date: 2003-01-14T16:12:58-05:00	[thread overview]
Message-ID: <1042578778.223719@master.nyc.kbcfp.com> (raw)
In-Reply-To: <3E23A88A.2C0969B0@adaworks.com>

Richard Riehle wrote:
> Implicit type conversions, along with implicit type promotions run
> counter to the Ada philosophy.

True, but irrelevant to the Unit C++ code, which does not involve
any implicit type conversions. (I should have declared my constructors
explicit, and special-cased Unit<Type,0,0,0> to allow an implicit
conversion from Type. But my example was just a rough outline.)

> C++ does not provide the same kind of capability for declaring new
> numeric types one has in Ada.   This, in spite of the entertaining
> example from Mr. Rosen.

But it does have the capability for declaring new class types,
and that's what the Unit code uses.

> Typedef does not do the same thing.   We are still left with predefined
> types.

I was typedefing class types, not numeric types. My typedefs were
just mnemonic shorthand for the full Unit<...> types.

> The whole idea of Ada is to declare types so they will be checked by
> the compiler and so mismatches will be caught.   If there is a problem
> with that, in the current standard, it needs to be fixed, but implicit
> conversions or promotions is simply a bad idea for this language.

And that is precisely what the C++ code is doing. At compile time,
and with zero run-time size or space overhead, the compiler will
catch attempts to add or subtract mismatched units, or to assign
one unit type to a different one. Multiplication or division of
units automatically produces a correct result type, and you can
have arbitrarily complex expressions, all checked by the compiler.

There are absolutely no implicit conversions or promotions involved.

> Actually, I don't think there is really a problem here wrt Ada, even
> after reading your paper.

Except that you can't do this in Ada, and people want to.




  parent reply	other threads:[~2003-01-14 21:12 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-01-13  6:05 Implicit Instantiations - was: Re: Why is Ada NOT a good choice for a beginner to programming? Grein, Christoph
2003-01-14  6:04 ` Richard Riehle
2003-01-14 20:25   ` Kevin Cline
2003-01-14 21:12   ` Hyman Rosen [this message]
  -- strict thread matches above, loose matches on Subject: below --
2003-01-14  6:29 Grein, Christoph
2003-01-15  4:35 ` Richard Riehle
replies disabled

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