From: Georg Bauhaus <bauhaus@futureapps.de>
Subject: Re: Constant record components
Date: Sat, 01 Jul 2006 20:33:08 +0200
Date: 2006-07-01T20:32:53+02:00 [thread overview]
Message-ID: <1151778788.25270.4.camel@localhost.localdomain> (raw)
In-Reply-To: <12adcn2kslq7d80@corp.supernews.com>
On Sat, 2006-07-01 at 10:37 -0700, ME wrote:
> What I meant was components that can not be changed after the record
> components are initialized.
> I can not use Record discriminanats because I have a two dimensional
> unconstrained array of these records.
You could use "component notation" with a suitable function in Ada 2005,
package rec is
type R is tagged private;
function make(m: INTEGER) return R;
-- `m` is the initial value for the immutable component
function immutable(thing: R) return INTEGER;
private
type R is tagged record
mutable: INTEGER;
data: INTEGER;
end record;
pragma inline(immutable);
end rec;
x: rec.R;
n: INTEGER;
begin
n := x.immutable; -- Ada 2005
x.immutable := n; -- illegal to assign to function result
next prev parent reply other threads:[~2006-07-01 18:33 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <12ad8guf3sg1o0d@corp.supernews.com>
2006-07-01 17:06 ` Constant record components Dmitry A. Kazakov
2006-07-01 17:37 ` ME
2006-07-01 18:33 ` Georg Bauhaus [this message]
2006-07-01 21:44 ` Jeffrey R. Carter
2006-07-02 9:18 ` Georg Bauhaus
2006-07-02 16:13 ` ME
2006-07-03 7:50 ` Dmitry A. Kazakov
2006-07-03 11:46 ` Craig Carey
2006-07-04 0:06 ` M E Leypold
2006-07-03 16:31 ` ME
2006-07-03 23:53 ` Randy Brukardt
2006-07-04 1:59 ` Craig Carey
2006-07-04 7:25 ` ME
2006-07-05 21:55 ` Randy Brukardt
2006-07-06 0:59 ` tmoran
2006-07-06 7:47 ` Jean-Pierre Rosen
2006-07-06 22:29 ` Randy Brukardt
2006-07-07 4:34 ` Jeffrey R. Carter
2006-07-07 5:39 ` ME
2006-07-07 9:15 ` Georg Bauhaus
2006-07-08 16:13 ` ME
2006-07-08 17:14 ` Georg Bauhaus
2006-07-13 6:58 ` ME
2006-07-13 8:39 ` Georg Bauhaus
2006-07-07 21:04 ` Randy Brukardt
2006-07-14 8:15 ` Craig Carey
2006-07-14 12:51 ` Craig Carey
2006-07-15 3:45 ` ME
2006-07-04 0:08 ` M E Leypold
2006-07-02 5:52 ` Craig Carey
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox