From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: numbers as 'generics' parameters
Date: Sat, 17 May 2008 09:47:46 +0200
Date: 2008-05-17T09:47:45+02:00 [thread overview]
Message-ID: <1g4p2jgvi3k8j.1j2xk6p9ws3a2.dlg@40tude.net> (raw)
In-Reply-To: c2595e25-a6e3-47ef-8523-dcd946a2a635@p25g2000hsf.googlegroups.com
On Fri, 16 May 2008 13:52:23 -0700 (PDT), Maciej Sobczak wrote:
> On 16 Maj, 20:57, Gautier <gaut...@fakeaddress.nil> wrote:
>
>> generic
>> N: Integer;
>> package Fixed_size_vectors is
>> Vector: array(1..N) of Float;
>
> I guess:
> type Vector is array (1..N) of Float;
>
>> end;
>
> How to write an operation that ensures *at compile time* that its two
> parameters are Fixed_size_vectors of equal N?
> Declare it in a child package? Is there any other option?
The first step is a bit tedious, but it is advisable to "rename" all formal
generic parameters within the package specification. [I don't know why
aren't they visible. That was a language design decision].
Anyway, here you go:
generic
N : Integer;
package Fixed_Size_Vector is
Size : Integer renames N;
type Vector is array (1..N) of Float;
end Fixed_Size_Vector;
package V1 is new Fixed_Size_Vector (25);
package V2 is new Fixed_Size_Vector (V1.Size);
> Similar question can be asked for (un)constrained and discriminated
> types. What are the options for such an operation?
You do it declaring a subtype, that constraints the discriminant or bounds.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2008-05-17 7:47 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-16 17:26 numbers as 'generics' parameters jhc0033
2008-05-16 17:55 ` Adam Beneschan
2008-05-16 19:12 ` John B. Matthews
2008-05-16 18:34 ` jimmaureenrogers
2008-05-16 18:57 ` Gautier
2008-05-16 20:52 ` Maciej Sobczak
2008-05-16 23:09 ` Peter C. Chapin
2008-05-17 7:47 ` Dmitry A. Kazakov [this message]
2008-05-17 16:29 ` Maciej Sobczak
2008-05-17 17:34 ` Dmitry A. Kazakov
2008-05-18 13:58 ` Maciej Sobczak
2008-05-18 14:52 ` Dmitry A. Kazakov
2008-05-18 20:37 ` Maciej Sobczak
2008-05-19 9:02 ` Dmitry A. Kazakov
2008-05-19 5:16 ` Ivan Levashew
2008-05-19 8:26 ` Maciej Sobczak
2008-05-16 20:22 ` Jeffrey R. Carter
2008-05-21 15:32 ` Robert A Duff
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox