comp.lang.ada
 help / color / mirror / Atom feed
From: Hyman Rosen <hyrosen@mail.com>
Subject: Re: Why is Ada NOT a good choice for a beginner to programming?
Date: Thu, 09 Jan 2003 22:26:12 -0500
Date: 2003-01-09T22:26:12-05:00	[thread overview]
Message-ID: <1042169172.955986@master.nyc.kbcfp.com> (raw)
In-Reply-To: <avk4l9$19i$1@a1-hrz.uni-duisburg.de>

Georg Bauhaus wrote:
> In which languages has this been fixed?

In C++. It's easy to define classes which are nothing more than
a wrapper around an underlying numeric type, are the same size
as that type, but which also carry around unit information, so
that the product of two lengths is an area. It looks something
like this:

template<typename T, int Mass, int Length, int Time>
struct Unit
{
	T v;
	Unit(T v) : v(v) { }
	// Addition and subtraction are defined only for identical units
	Unit operator+(Unit o) { return Unit(v + o.v); }
	Unit operator-(Unit o) { return Unit(v - o.v); }
};

// Multiplication and division are defined for any units

template<typename T, int M1, int L1, int T1, int M2, int L2, int T2>
inline Unit<T, M1 + M2, L1 + L2, T1 + T2>
operator*(Unit<T,M1,L1,T1> l, Unit<T,M2,L2,T2> r)
{ return Unit<T, M1 + M2, L1 + L2, T1 + T2>(l.v * t.v); }

template<typename T, int M1, int L1, int T1, int M2, int L2, int T2>
inline Unit<T, M1 - M2, L1 - L2, T1 - T2>
operator/(Unit<T,M1,L1,T1> l, Unit<T,M2,L2,T2> r)
{ return Unit<T, M1 - M2, L1 - L2, T1 - T2>(l.v / t.v); }

typedef Unit<double, 0, 1, 0> Length;
typedef Unit<double, 0, 2, 0> Area;
Area compute(Length l, Length r) { return l * r; }




  reply	other threads:[~2003-01-10  3:26 UTC|newest]

Thread overview: 119+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-12-21  3:30 Why is Ada NOT a good choice for a beginner to programming? David Wright
2002-12-21  5:44 ` sk
2002-12-23 14:29   ` Wes Groleau
2002-12-23 17:36     ` sk
2002-12-23 18:24       ` David Wright
2002-12-23 19:16         ` sk
2002-12-23 19:48           ` David Wright
2002-12-23 21:33             ` Wes Groleau
2002-12-23 21:17           ` Robert A Duff
2002-12-24 19:22             ` faust
2002-12-24  0:46               ` Robert A Duff
2002-12-24  9:41                 ` Pascal Obry
2002-12-25  4:43                 ` faust
2002-12-27 17:54                   ` Warren W. Gay VE3WWG
2003-01-02 13:50                     ` Wes Groleau
2002-12-25  7:24                 ` AG
2003-01-02  9:56                   ` John McCabe
2003-01-02 13:47                 ` Wes Groleau
2003-01-08 19:39                   ` faust
2003-01-08  2:44                     ` Jeffrey Creem
2003-01-08 18:54                       ` Wes Groleau
2003-01-08 19:48                         ` chris.danx
2003-01-08 21:59                           ` Wes Groleau
2003-01-09 15:31                             ` Georg Bauhaus
2003-01-10  3:26                               ` Hyman Rosen [this message]
2003-01-10 22:58                                 ` Georg Bauhaus
2003-01-10  3:51                               ` Kevin Cline
2003-01-10 13:29                               ` Wes Groleau
2003-01-11 12:09                               ` Richard Riehle
2003-01-11 18:13                                 ` Wes Groleau
2003-01-09 16:52                           ` faust
2003-01-08 21:57                             ` Vinzent Hoefler
2003-01-09  0:59                       ` faust
2003-01-09  0:59                       ` faust
2003-01-08 13:14                         ` Ted Dennison
2003-01-08 17:41                         ` Warren W. Gay VE3WWG
2003-01-09 16:40                           ` faust
2003-01-08 21:58                             ` Vinzent Hoefler
2002-12-23 21:30         ` Wes Groleau
2002-12-23 22:11           ` David Wright
2002-12-30 16:22         ` Mark
2002-12-24  0:50     ` Craig Carey
2002-12-29 14:44       ` Colin Paul Gloster
2002-12-21  8:39 ` arvids lemchens
2002-12-21  8:53 ` Gautier
2002-12-21  9:42 ` Craig Carey
2002-12-21 10:44 ` Dale Stanbrough
2002-12-21 15:47   ` Alfred Hilscher
2002-12-21 19:01     ` tmoran
2002-12-22  1:06       ` Robert C. Leif
2002-12-23 14:56         ` Wes Groleau
2002-12-23 11:05       ` Alfred Hilscher
2002-12-22  0:34     ` James S. Rogers
2002-12-23 11:11       ` Alfred Hilscher
2002-12-23 14:32         ` Wes Groleau
2002-12-23 19:54         ` tmoran
2002-12-21 10:51 ` Why is Ada a good choice for an ambitious beginner to programming Wojtek Narczynski
2002-12-22 14:40   ` Bill Findlay
2002-12-22 15:08     ` Bill Findlay
2002-12-22 23:02       ` David Wright
2002-12-23  1:36         ` Bill Findlay
2002-12-23  2:13           ` David Wright
2002-12-23 14:40           ` Wes Groleau
2002-12-27 21:25             ` Randy Brukardt
2002-12-23 11:52     ` Wojtek Narczynski
2002-12-23 14:12       ` Bill Findlay
2002-12-23 20:15         ` Wojtek Narczynski
2002-12-24 19:29           ` Bill Findlay
2002-12-24 22:56             ` Wojtek Narczynski
2002-12-24 23:31               ` Bill Findlay
2002-12-24 23:36               ` Adrian Knoth
2002-12-25  8:23             ` Hyman Rosen
2002-12-27 17:27               ` Kevin Cline
2002-12-28  1:56                 ` Bill Findlay
2002-12-28  2:13                   ` Bill Findlay
2002-12-29  6:07                   ` Hyman Rosen
2002-12-23 20:52         ` Wojtek Narczynski
2002-12-23 20:07     ` chris.danx
2003-01-02 10:04     ` John McCabe
2003-01-02 21:32       ` Bill Findlay
2003-01-04 22:55         ` David Wright
2003-01-05  0:50           ` Bill Findlay
2003-01-05  2:18             ` David Wright
2003-01-05  3:57               ` John R. Strohm
2003-01-10  2:51                 ` Richard Riehle
2003-01-10  9:45                   ` David Wright
2003-01-10 10:59                     ` Richard Riehle
2003-01-11 17:47                     ` u.r. faust
2003-01-06  9:43               ` John McCabe
2003-01-06 10:05         ` John McCabe
2003-01-06 11:13           ` Bill Findlay
2003-01-10  2:58           ` Richard Riehle
2003-01-10  9:29             ` John McCabe
2002-12-21 11:57 ` Why is Ada NOT a good choice for a beginner to programming? David Marceau
2002-12-21 15:59 ` Alfred Hilscher
2002-12-21 17:48 ` Britt Snodgrass
2002-12-21 20:05 ` Peter Hend�n
2002-12-22  1:54 ` faust
2002-12-22  1:28   ` Hyman Rosen
2002-12-22  2:11     ` Larry Kilgallen
2002-12-22 22:49     ` faust
     [not found] ` <u7m2ua.qk3.ln@beastie.ix.netcom.com>
2002-12-23 14:55   ` Wes Groleau
2002-12-24 14:01 ` W D Tate
2002-12-24 20:06   ` Rod Haper
2002-12-25  0:37   ` noone
2002-12-26 13:23     ` W D Tate
2002-12-26 20:37       ` David Starner
2002-12-27 14:02         ` W D Tate
2003-01-13 12:18 ` John English
  -- strict thread matches above, loose matches on Subject: below --
2002-12-21 15:47 Alexandre E. Kopilovitch
2002-12-23 14:48 ` Wes Groleau
2003-01-10  6:38 Grein, Christoph
2003-01-10  8:21 ` Hyman Rosen
2003-01-10 15:51 ` Kevin Cline
2003-01-10 19:00 ` Kevin Cline
2003-01-10  8:35 Grein, Christoph
2003-01-10  9:26 ` Hyman Rosen
2003-01-13 16:49 ` Hyman Rosen
2003-01-13  6:13 Grein, Christoph
replies disabled

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