comp.lang.ada
 help / color / mirror / Atom feed
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



  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