From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Using Generic Pasckages
Date: Thu, 9 Apr 2020 10:57:12 +0200
Date: 2020-04-09T10:57:12+02:00 [thread overview]
Message-ID: <r6mo17$1cj5$1@gioia.aioe.org> (raw)
In-Reply-To: 5e8edf69$0$18432$e4fe514c@news.kpn.nl
On 2020-04-09 10:40, ldries46 wrote:
> I have created some generic packages. tese are packages that only do the
> same thing but with other types. Till now I did only need these packages
> without interaction with between packages using the same type. I just
> can declare them:
> Package AA is new BB(type); then calling them as
> A := AA.Get_Value;
> No other declaration seemed to be neccesary .
>
> Now I have the following situation:
> Package AA is new BB(integer);
> Package CC is new BB(integer);
> and a case where I have several statements using Package AA in one
> condition and CC the other case.
> I want to do that by using:
> if D then EE := AA; else EE := CC; end if;
> But I cannot find in the documentation how the declaration of EE should
> be made.
>
> Of course there is the possibility to create the same progrram without
> using EE but that is far less readable and thus creating more possible
> errors.
>
> If I have to do this without the generic packages I already have the
> program alse will be less readable.
What you are observing is the advantages of dynamic polymorphism (tagged
types) over the static one (generics).
Already the name static hints that you cannot select a polymorphic
implementation (AA or CC) using some non-static (dynamic) expression D.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2020-04-09 8:57 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-09 8:40 Using Generic Pasckages ldries46
2020-04-09 8:57 ` Dmitry A. Kazakov [this message]
2020-04-09 10:05 ` ldries46
2020-04-09 11:23 ` Dmitry A. Kazakov
2020-04-09 15:38 ` AdaMagica
2020-04-09 18:23 ` Simon Wright
2020-04-09 20:45 ` Jere
2020-04-10 16:34 ` Stephen Leake
2020-04-11 13:16 ` ldries46
2020-04-11 14:15 ` Jeffrey R. Carter
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox