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






  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