From: tmoran@acm.org
Subject: Re: slice'access?
Date: Sat, 25 May 2002 18:28:10 GMT
Date: 2002-05-25T18:28:10+00:00 [thread overview]
Message-ID: <_IQH8.461$II3.79467548@newssvr13.news.prodigy.com> (raw)
In-Reply-To: 5ee5b646.0205250847.2df207c9@posting.google.com
> > Is there a nice way to create an access to a slice? eg
> The answer of course is no. The RM does not allow this
> and if you think for just a moment it is obvious why. The
> usual representation of bounds for an array is to have the
> bounds immediately before the data, but of course that
The problem at hand is that a package maintains a private data
structure which contains, among other things, long strings. I want
(read only) access to one of those strings. Of course it's
possible to call the data package and have it return a string,
subtype card is string(1 .. 80);
function get_card(param) return card;
but speed matters. It would be faster to get a pointer
function get_card_pointer(param) return ptr_type;
For instance, getting character(8) of the card could be done with
get_card(param)(8)
but
get_card_pointer(param)(8)
is likely to be a lot faster.
Using a fixed length subtype and system.address_to_access_conversions, a
quick test shows it works fine on two different compilers. Or I can call
a subprogram and pass the slice, eg
procedure callback_to_process_the_card(s : in card);
fetch_card(param, callback_to_process_the_card'access);
and be very surprised if it's passed by copy. Neither of those techniques
is very nice. Is there a NICE way to create an access to a slice?
next prev parent reply other threads:[~2002-05-25 18:28 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-06-19 20:39 Looping over a tagged record? M R Goodwin
2001-06-19 21:31 ` Pascal Obry
2001-06-19 21:32 ` Pascal Obry
2001-06-19 22:20 ` Samuel T. Harris
2001-06-19 23:45 ` mgoodwinSPAMMY
2001-06-20 1:33 ` Pat Rogers
2001-06-20 3:13 ` Pat Rogers
2001-06-20 2:58 ` DuckE
2001-06-20 13:15 ` Ted Dennison
2001-06-20 15:01 ` M. A. Alves
2001-06-21 2:36 ` DuckE
2001-06-21 10:14 ` M. A. Alves
2001-06-21 13:24 ` Pat Rogers
2001-06-21 17:08 ` Charles Hixson
2001-06-21 18:58 ` tmoran
2001-06-21 23:02 ` Charles Hixson
2001-06-22 19:04 ` B.Gaffney
2001-06-22 20:36 ` Pascal Obry
2001-06-22 2:18 ` DuckE
2001-06-22 17:33 ` Charles Hixson
2001-06-22 18:24 ` tmoran
2001-09-13 0:29 ` Gnat Windows load error tmoran
2001-09-13 18:15 ` Jerry van Dijk
2001-09-13 23:17 ` tmoran
2001-09-13 3:58 ` Ada web crawler tmoran
2001-11-17 21:50 ` ada.strings.bounded slice errors tmoran
2001-11-18 17:16 ` Florian Weimer
2001-11-18 19:31 ` tmoran
2001-11-19 7:12 ` Florian Weimer
2002-02-08 20:55 ` How to get a traceback in Gnat 3.14p tmoran
2002-02-08 21:24 ` Pascal Obry
2002-02-08 22:28 ` tmoran
2002-02-11 0:10 ` How to use gnatelim in Gnat 3.14p? tmoran
2002-02-15 17:23 ` does gnatelim work? tmoran
2002-02-15 18:18 ` Stephen Leake
2002-02-15 21:58 ` tmoran
2002-02-18 1:31 ` Stephen Leake
2002-04-15 3:05 ` Announce: .rc files with Gnat tmoran
2002-04-15 14:48 ` Ted Dennison
2002-05-25 7:06 ` slice'access? tmoran
2002-05-25 16:47 ` slice'access? Robert Dewar
2002-05-25 18:28 ` tmoran [this message]
2002-05-25 20:20 ` slice'access? Jeffrey Carter
2002-05-25 23:39 ` slice'access? tmoran
2002-05-26 14:22 ` slice'access? Robert Dewar
2002-09-30 1:54 ` 'write of bounded string? tmoran
2002-09-30 16:06 ` Stephen Leake
2002-10-27 23:01 ` phone# etc bdean
2002-10-28 3:04 ` tmoran
2002-11-06 3:14 ` A little Ada app tmoran
2002-11-06 11:37 ` Larry Kilgallen
2002-11-06 15:08 ` Ted Dennison
2002-11-06 18:02 ` tmoran
2001-06-21 3:09 ` Looping over a tagged record? gresset1
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox