comp.lang.ada
 help / color / mirror / Atom feed
From: matteo.bordin@gmail.com
Subject: Re: prohibit certain generic instantiations in Ada 2005
Date: 12 Feb 2006 00:55:52 -0800
Date: 2006-02-12T00:55:52-08:00	[thread overview]
Message-ID: <1139734552.205623.152990@o13g2000cwo.googlegroups.com> (raw)
In-Reply-To: <uzmkxrjol.fsf@acm.org>

As I explained in a prewieus post, my int/float example was just
didactic. I want that kind of checking because I want to use generics
as a generative environment for a component-based approach. If I can
map to the source code the knowledge that some template instantiations
are not allowed, then I can let the compiler check for me if the user
of the library I am writing is doing something wrong. For example,
imagine I want to compose a car component with an Engine and a
Transmission. Electric engine can be coupled only with automatic
transmission, while gasoline engine can work with both automatic and
manual transmission. Then the Car component is:

generic
    type My_Engine is new Engine with private;
    type My_Transmission is new Transmission with private;
package Car is
....

Then I want to prohibit:

package My_Car is new Car(My_Engine => Electric_Engine, My_Transmission
=> Manual_Tansmission).

As you can see there is a reason to do that. And there is other reasons
to want static (compile-time) checking insteam of run-time exceptions.




  reply	other threads:[~2006-02-12  8:55 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-02-09 18:01 prohibit certain generic instantiations in Ada 2005 matteo.bordin
2006-02-09 20:02 ` Matthew Heaney
2006-02-10 14:18   ` matteo.bordin
2006-02-10 18:25     ` Dmitry A. Kazakov
2006-02-10 19:03       ` Georg Bauhaus
2006-02-11 10:45         ` Dmitry A. Kazakov
2006-02-11  8:04       ` matteo.bordin
2006-02-11  9:54         ` Martin Krischik
2006-02-11 10:20           ` matteo.bordin
2006-02-11 12:46             ` Martin Krischik
2006-02-11 10:45         ` Dmitry A. Kazakov
2006-02-11 22:20           ` Jeffrey R. Carter
2006-02-11 15:36         ` Stephen Leake
2006-02-12  8:55           ` matteo.bordin [this message]
2006-02-12  9:49             ` Dmitry A. Kazakov
2006-02-12 12:41               ` matteo.bordin
2006-02-13 19:14             ` Matthew Heaney
replies disabled

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