comp.lang.ada
 help / color / mirror / Atom feed
From: dewar@merv.cs.nyu.edu (Robert Dewar)
Subject: Re: rep clause in generics
Date: 1997/03/14
Date: 1997-03-14T00:00:00+00:00	[thread overview]
Message-ID: <dewar.858351753@merv> (raw)
In-Reply-To: 01bc3057$61a78db0$81946482@vkpc131


Jonas asks

<<generic
   type Element_Type is private;
package Gen_Buffers is
   type Index_Type  is new Natural;
   type Buffer_Type is array(Index_Type range <>) of Element_Type;

   pragma Pack (Buffer_Type);
   for Buffer_Type'Component_Size use Element_Type'Size; -- line 9
end Gen_Buffers;

The compiler complained with:

   gen_buffers.ads:9:39: static integer expression required here

I thought that Element_Type'Size was a static integer expression. Am I or
the compiler in error?
>>

The compiler is correct, this is obviously NOT a static expression. Remember
a static expression is not an expression which seems to you to be something
that the compiler should be able to evaluate at compile time. There are very
specific rules, and this does not obey them.

So when you say to yourself "I thought that ... was a static expression",
you need to go to the set of rules, and see if they conform to your thought!
In this case they don't, you cannot find a rule that says that this 
expression is static. An expression is non-static unless there is a very
specific rule in the RM that says that it is static.





  parent reply	other threads:[~1997-03-14  0:00 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-03-14  0:00 rep clause in generics Jonas Nygren
1997-03-14  0:00 ` Stephen Leake
1997-03-15  0:00   ` Robert Dewar
1997-03-20  0:00   ` Aaro Koskinen
1997-03-14  0:00 ` Robert Dewar [this message]
1997-03-20  0:00   ` Nick Roberts
1997-03-14  0:00 ` Robert A Duff
1997-03-15  0:00   ` Robert Dewar
replies disabled

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