comp.lang.ada
 help / color / mirror / Atom feed
From: "REH" <spamjunk@stny.rr.com>
Subject: Re: generics in Ada 83
Date: 19 Sep 2005 10:58:28 -0700
Date: 2005-09-19T10:58:28-07:00	[thread overview]
Message-ID: <1127152708.824683.290990@g47g2000cwa.googlegroups.com> (raw)
In-Reply-To: <wccbr2vpsh2.fsf@shell01.TheWorld.com>


Robert A Duff wrote:
> "Hyman Rosen" <hyman.rosen@gmail.com> writes:
>
> > Jean-Pierre Rosen wrote:
> > > In Ada, there is no need to check legality on the expansion of the
> > > generic. Correct me if I'm wrong, but my understanding of templates is
> > > that the legality is rechecked for each instantiation.
> >
> > Well, in Ada, instantiations check the parameters for validity
> > against whatever contract the generic specifies for them. In C++,
> > the contract is implied by the usage within the template, so yes,
> > the legality is rechecked that way. But remember that in C++
> > template instatntiation is done strictly at compile-time. As far
> > as the programmer is concerned, either an instantiation validly
> > meets the template's requirements for its parameters, or the code
> > fails to compile, and that is true for both languages (or at least
> > I think that's true for Ada).
>
> That's right.
>
> The Ada way makes it easier to understand what the contract _is_.
> And this implies that if you want to change the generic/template,
> it's easier to understand whether or not you might break any clients.
> (If you're writing a widely-used library, you might not have access to
> all existing clients, so you can't compile them to see if they break.)
> It also implies that the error messages are easier to understand,
> especially with multiple layers of templates.
>
> On the other hand, the C++ way is more powerful.
>
> - Bob

That has got to be the best argument I have ever seem for Ada generics.

Thank you,
REH




  reply	other threads:[~2005-09-19 17:58 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-09-13 13:26 generics in Ada 83 REH
2005-09-13 13:30 ` Georg Bauhaus
2005-09-13 16:25   ` REH
2005-09-13 19:23     ` Georg Bauhaus
2005-09-13 13:50 ` Martin Dowie
2005-09-13 16:30   ` REH
2005-09-13 16:41     ` Martin Dowie
2005-09-13 18:43       ` REH
2005-09-13 19:37         ` Ludovic Brenta
2005-09-13 19:53           ` REH
2005-09-13 16:56 ` Jeffrey Carter
2005-09-13 18:53   ` REH
2005-09-13 22:16     ` Jeffrey Carter
2005-09-13 22:44       ` REH
2005-09-14  8:14   ` Jean-Pierre Rosen
2005-09-14 12:40     ` REH
2005-09-14 13:15     ` Hyman Rosen
2005-09-14 14:08       ` Jean-Pierre Rosen
2005-09-14 15:23         ` Hyman Rosen
2005-09-14 15:41           ` Robert A Duff
2005-09-19 17:58             ` REH [this message]
2005-09-20  4:58               ` Hyman Rosen
2005-09-20 12:36                 ` REH
2005-09-20  1:34             ` adaworks
2005-09-20  4:14               ` Jim Rogers
2005-09-21 22:58               ` Robert A Duff
2005-09-22 15:18                 ` adaworks
replies disabled

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