From: Mike Bates <mikeb@ssd.fsi.com>
Subject: Constructing a modular type based on the size of an arbitrary type
Date: 1999/09/14
Date: 1999-09-14T00:00:00+00:00 [thread overview]
Message-ID: <37DE8C45.A40AFE78@ssd.fsi.com> (raw)
I am writing a generic package in which I need to be able to construct
a modular type with the same size in bits as an arbitrary packed type
passed in as a generic parameter. (This is to be able to do unchecked
conversions between the arbitrary type and modular types; so they need
to be the same size.) This is what I tried:
generic
type Arbitrary_Type is private;
package Foo is
type Modular_Type is mod Arbitrary_Type'Size ** 2;
end Foo;
The definition of Modular_Type fails because the value
Arbitrary_Type'Size ** 2 is not static. (This surprises me, because
the value is determinable at compile time.)
I also tried the following, relying on the instantiator to pass in
the value of Arbitrary_Type'Size ** 2:
generic
Arbitrary_Modulus : Natural;
package Foo is
type Modular_Type is mod Arbitrary_Type;
end Foo;
This also fails, again because the modulus expression is not
static, even though it seems that it should determinable at compile
time. It fails even if I use a numeric literal as the actual
parameter in the instantiation.
Is there any way to construct a modular type to match the size of
an arbitrary type? Or is this as impossible as trisecting the angle?
Mike Bates
FlightSafety Simulation
mikeb@ssd.fsi.com
next reply other threads:[~1999-09-14 0:00 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
1999-09-14 0:00 Mike Bates [this message]
1999-09-14 0:00 ` Constructing a modular type based on the size of an arbitrary type Mark A Biggar
1999-09-14 0:00 ` Robert I. Eachus
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox