comp.lang.ada
 help / color / mirror / Atom feed
From: "Brian Catlin" <briancatlin@mindspring.com>
Subject: Re: C-style 'union' in Ada?
Date: Thu, 16 Aug 2001 20:14:24 -0700
Date: 2001-08-17T03:14:49+00:00	[thread overview]
Message-ID: <9li279$mhm$1@slb2.atl.mindspring.net> (raw)
In-Reply-To: WUXe7.15629$ZM2.1376965@newsread2.prod.itd.earthlink.net

"David Brown" <davidb@davidb.org> wrote in message news:WUXe7.15629$ZM2.1376965@newsread2.prod.itd.earthlink.net...
> Ted Dennison <dennison@telepath.com> wrote:
> > In article <9l7qon$d78$1@nntp9.atl.mindspring.net>, Brian Catlin says...
> >>
> >>I'm still trying to get both lobes around the Ada paradigm.  I have a
> >>record that I want to hold a pointer to a buffer which is either a String
> >>or Wide_String, but I don't want to statically declare which, so using a
> >>variant record won't work (at least given my understanding).  Likewise, I
> >>don't want to have two record definitions, one for String, and one for
> >>Wide_String.  In the package I'm designing, I don't care whether it is a
> >>String or Wide_String, I will just pass it to the file I/O packages
> >>(stream, in this case).  In C, I would:
>
[...snip...]
>
> I have recently encountered a concrete example of the need for something
> like this.  The application is storing variable sized data fields in fixed
> length records (say disk sectors).  The block is defined as a large string.
> The beginning of the block contains lengths for each of the variable sized
> fields.  The data items start at the end of the record and work their way
> backward.
>
> Basically, there are two different views of the block and the boundary
> between them depends on the sizes of the data items.
>
> Unchecked conversions of access values seems to be the easiest way to deal
> with this.

This is very similar to what I'm doing.  I was trying to avoid unchecked conversion.  I had assumed that there would be a better
way.

 -Brian





  reply	other threads:[~2001-08-17  3:14 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-08-13  6:06 C-style 'union' in Ada? Brian Catlin
2001-08-13  7:34 ` tmoran
2001-08-14  3:09 ` DuckE
2001-08-14  3:49   ` Brian Catlin
2001-08-14  7:37     ` Martin Dowie
2001-08-14  9:39       ` Ole-Hjalmar Kristensen
2001-08-14 11:49         ` Martin Dowie
2001-08-14 13:38 ` Ted Dennison
2001-08-16 22:35   ` David Brown
2001-08-17  3:14     ` Brian Catlin [this message]
2001-08-17 14:44       ` Ted Dennison
2001-08-17 16:38         ` Jeffrey Carter
2001-08-17 18:17           ` Ted Dennison
2001-08-17 18:45         ` Samuel T. Harris
2001-08-17  3:18     ` Variable sizes for record fields (was: C-style 'union' in Ada) Larry Kilgallen
2001-08-17  6:34       ` Variable sizes for record fields David Brown
2001-08-17 10:44         ` Larry Kilgallen
2001-08-17 19:18           ` Warren W. Gay VE3WWG
2001-08-17 21:36             ` Ken Burtch
replies disabled

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