comp.lang.ada
 help / color / mirror / Atom feed
From: Marius Amado Alves <amado.alves@netcabo.pt>
To: comp.lang.ada@ada-france.org
Subject: Re: generic parameter Copy for primitifs types.
Date: Fri, 24 Jun 2005 12:45:19 +0100
Date: 2005-06-24T12:45:19+01:00	[thread overview]
Message-ID: <mailman.89.1119613561.17633.comp.lang.ada@ada-france.org> (raw)
In-Reply-To: <1ormc6uaytixb.v2ogsw0x6y8k.dlg@40tude.net>

On 24 Jun 2005, at 08:28, Dmitry A. Kazakov wrote:
>> The best solution is to set ":=" by default but it
>> is not possible...
>
> True. You can try generic "specialization" like this:
> ...
> generic
>    type T_Item is private;
> package Specialized_Toto is
>    procedure Copy (Left : out T_Item; Right : T_Item);
>    package Toto_Instance is new Toto (T_Item, Copy);
> end Specialized_Toto;
> ...

True. But then the use is not uniform. A different generic package must 
be selected for each case:

package Default_Pkg is new Specialized_Toto (T);
package Special_Pkg is new Toto (T, Special_Copy);

The idiom I have posted earlier does not have this problem. But, 
granted, may have others instead, e.g. requiring two instantiations 
instead of one for each case.

All this would go away if packages were first class citizens of Ada, 
i.e. objects. This is one thing I'm trying to do with Ocpotus 
(softdevelcoop.org/ocpotus).




  reply	other threads:[~2005-06-24 11:45 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-06-23 16:41 generic parameter Copy for primitifs types nblanpain
2005-06-23 17:47 ` Marc A. Criley
2005-06-23 17:54 ` Dmitry A. Kazakov
2005-06-23 19:41   ` nblanpain
2005-06-23 23:44     ` Marius Amado Alves
2005-06-28 10:30       ` Matthew Heaney
2005-06-28 11:21         ` Marius Amado Alves
2005-06-24  7:28     ` Dmitry A. Kazakov
2005-06-24 11:45       ` Marius Amado Alves [this message]
2005-06-24 14:53         ` Dmitry A. Kazakov
2005-06-24 15:11           ` Marius Amado Alves
2005-06-25 15:05           ` Martin Krischik
2005-06-23 18:30 ` Björn Persson
2005-06-23 19:39   ` nblanpain
2005-06-23 19:52     ` Marc A. Criley
2005-06-24  3:10 ` Jeffrey Carter
2005-06-27  4:28 ` Christoph Grein
replies disabled

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