comp.lang.ada
 help / color / mirror / Atom feed
From: Ole-Hjalmar Kristensen <ohk@clustra.com>
Subject: Re: C-style 'union' in Ada?
Date: 14 Aug 2001 11:39:40 +0200
Date: 2001-08-14T11:39:40+02:00	[thread overview]
Message-ID: <umqsnev3rqb.fsf@maestro.clustra.com> (raw)
In-Reply-To: 3b78d2d4$1@pull.gecm.com

"Martin Dowie" <martin.dowie@nospam.baesystems.com> writes:

> The trick (if you could call it that!) is to include a default value
> for the discriminant in the type definition. You can then change its
> value at will. If you don't have a default then you have to contraint
> the object when you declare it - which then fixes it to that value.

Yes, but you can only change it with a whole record assignment.

> 
> Brian Catlin <briancatlin@mindspring.com> wrote in message
> news:9la73h$vvs$1@slb6.atl.mindspring.net...
> > I didn't know that a discriminant could be assigned at run time.  This is
> close to what I want to do.
> >
> > Thanks!
> >  -Brian
> >
> > "DuckE" <nospam_steved94@home.com> wrote in message
> news:7E0e7.12187$vW2.6599957@news1.sttln1.wa.home.com...
> [snip]
> > > procedure string_demo is
> > >
> > >   type str_type is ( ansi, wide );
> > >
> > >   type string_desc( str_select : str_type := ansi ) is
> > >     record
> > >       case str_select is
> > >         when ansi =>
> > >           ansi_string : String_Access;
> > >         when wide =>
> > >           wide_string : Wide_String_Access;
> > >       end case;
> > >     end record;
> > >
> > > begin
> > >   declare
> > >     str : string_desc;
> > >   begin
> > >     str := ( str_select => ansi, ansi_string => new
> String'( "Hello" ) );
> > >     Free( str.ansi_string );
> > >     str := ( str_select => wide, wide_string => new Wide_String'(
> > > "There" ) );
> > >     Free( str.wide_string );
> > >   end;
> > > end string_demo;
> >
> 
> 

-- 
Kabelsalat ist gesund.

Ole-Hj. Kristensen



  reply	other threads:[~2001-08-14  9:39 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 [this message]
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
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