comp.lang.ada
 help / color / mirror / Atom feed
From: "Luke A. Guest" <laguest@n_o_p_o_r_k_a_n_d_h_a_m.abyss2.demon.co.uk>
Subject: Re: Efficiently setting up large quantities of constant data
Date: Mon, 13 Dec 2004 22:15:43 +0000
Date: 2004-12-13T22:15:43+00:00	[thread overview]
Message-ID: <pan.2004.12.13.22.15.43.34020@n_o_p_o_r_k_a_n_d_h_a_m.abyss2.demon.co.uk> (raw)
In-Reply-To: fa59671.0412131348.2677f5ec@posting.google.com

On Mon, 13 Dec 2004 13:48:49 -0800, Michael Mounteney wrote:

>      type structure is
>           record
>                part : component_ref;
>           end record;
> 
> So I will have lots of structures scattered about, which will be
> completely constant.  I would like to enforce this constancy, but Ada

Well, firstly, it seems like overkill to have a record which has only a
pointer to an array. Surely, just creating your variables *as* instances
of these arrays would be better?

> (as far as I know) does not (unlike C++;  that should get some hackles
> rising) allow `constant' to be splashed about in type definitions. This
> is on GNAT, which does not support pragma read_only.

By doing the above, you can of course do the following:

part : constant component_list := (...);  -- Initialise me here!!
 
> Is there any way to ensure that these data are not modified, other than
> by forbidding direct access to structure.part etc?

Do this with a package that *has memory* and it should work nicely. Also,
make it private if you want and add an accessor that can only read from
the arrays.

Luke.




  parent reply	other threads:[~2004-12-13 22:15 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-13 21:48 Efficiently setting up large quantities of constant data Michael Mounteney
2004-12-13 22:09 ` Stephen Leake
2004-12-13 22:15 ` Luke A. Guest [this message]
2004-12-14  0:20 ` Jeffrey Carter
2004-12-14  8:43 ` Martin Krischik
2004-12-14 12:18 ` Simon Wright
2004-12-15 21:10   ` Brian May
2004-12-16 23:18     ` Nick Roberts
2004-12-16 12:36 ` Dr. Adrian Wrigley
2004-12-16 13:50   ` Marc A. Criley
2004-12-17  2:32     ` John B. Matthews
2004-12-16 14:06   ` rien
2004-12-16 14:24   ` Vinzent 'Gadget' Hoefler
2004-12-16 18:12     ` Dr. Adrian Wrigley
2004-12-16 23:25       ` Nick Roberts
2004-12-17  5:20     ` tmoran
2004-12-17  8:38       ` Vinzent 'Gadget' Hoefler
2004-12-17 13:53     ` Dr. Adrian Wrigley
2004-12-17 14:16       ` Alex R. Mosteo
2004-12-16 17:11   ` Andre
2004-12-16 21:52     ` Larry Kilgallen
2004-12-16 23:23       ` Nick Roberts
2004-12-16 23:47       ` Dr. Adrian Wrigley
2004-12-19 14:34         ` Simon Wright
2004-12-16 18:29 ` Alex R. Mosteo
replies disabled

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