comp.lang.ada
 help / color / mirror / Atom feed
From: Ludovic Brenta <ludovic@ludovic-brenta.org>
Subject: Re: Newbie question
Date: Thu, 12 Mar 2009 07:36:22 -0700 (PDT)
Date: 2009-03-12T07:36:22-07:00	[thread overview]
Message-ID: <e789a6cc-960b-4f29-a6b0-f47adfc8e584@41g2000yqf.googlegroups.com> (raw)
In-Reply-To: Pine.LNX.4.64.0903121525560.23101@medsec1.medien.uni-weimar.de

On Mar 12, 3:32 pm, stefan-lu...@see-the.signature wrote:
> On Thu, 12 Mar 2009, Olivier Scalbert wrote:
> > Ludovic Brenta wrote:
>
> > > Solution 2: merge the Boolean directly into Piece_T:
>
> > > type Piece_T (Present : Boolean) is record
> > >    case Present is
> > >       when True =>
> > >          Color : Color_T;
> > >          Piece_Type : Piece_Type_T;
> > >       when False =>
> > >          null;
> > >    end case;
> > > end record;
>
> Solution 2a: Use an enumeration:
>
> type Color_T is (Black, White, None);
>
> type Piece_T(Color: Color_T) is
>   record
>     case Color is
>       when White =>
>         White_Piece: Piece_Type_T;
>       when Black =>
>         Black_Piece: Piece_Type_T;
>       when None =>
>         null;
>     end case;
>   end record;

The problem with this is that you'd then need two code paths for
Black_Piece and White_Piece, every time. To overcome this, here is
solution 2a1:

type Square_T (Color : Color_T := None) is record
   case Color is
      when None => null;
      when Black | White => Piece_Type : Piece_Type_T;
   end case;
end record;

--
Ludovic Brenta.



  reply	other threads:[~2009-03-12 14:36 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-12 13:29 Newbie question Olivier Scalbert
2009-03-12 13:48 ` Ludovic Brenta
2009-03-12 14:16   ` Olivier Scalbert
2009-03-12 14:31     ` Ludovic Brenta
2009-03-12 14:32     ` stefan-lucks
2009-03-12 14:36       ` Ludovic Brenta [this message]
2009-03-12 17:14         ` stefan-lucks
2009-03-12 18:29           ` Adam Beneschan
2009-03-12 15:03       ` Jacob Sparre Andersen
2009-03-12 15:07   ` Robert A Duff
2009-03-12 17:16 ` Georg Bauhaus
2009-03-13  1:59 ` tmoran
2009-03-15 13:46 ` Olivier Scalbert
2009-03-21 18:08 ` Olivier Scalbert
2009-03-21 18:22   ` (see below)
2009-03-21 18:29     ` Olivier Scalbert
2009-03-21 18:36       ` Georg Bauhaus
2009-03-21 18:39         ` Olivier Scalbert
2009-03-22 12:40           ` (see below)
2009-03-22 13:19             ` Olivier Scalbert
2009-03-21 18:39       ` Jeffrey R. Carter
2009-03-23  8:24       ` Jean-Pierre Rosen
  -- strict thread matches above, loose matches on Subject: below --
2007-11-23 13:22 Sir Chewbury Gubbins
2007-11-23 14:01 ` Sir Chewbury Gubbins
2007-11-24 16:49 ` Stephen Leake
2007-11-24 17:08   ` Peter C. Chapin
2007-11-25 19:25     ` Stephen Leake
2007-11-29  0:46   ` Robert A Duff
2005-07-18 11:26 Francisco J. Montoya
2005-07-18 13:14 ` Martin Dowie
2005-07-18 13:51   ` Alex R. Mosteo
2005-07-18 20:27     ` Martin Dowie
2005-07-18 15:28 ` Jeffrey Carter
2005-07-18 17:40 ` Martin Krischik
2005-07-03 17:58 newbie question e.coli
2005-07-03 18:32 ` Dmitry A. Kazakov
2004-08-04  6:42 Newbie Question leke
2004-08-04  8:55 ` Frank
2004-08-04  9:51 ` Martin Dowie
2001-12-24 13:52 Newbie question Jasbinder S  Uppal
2001-12-24 20:06 ` Michal Nowak
2001-12-24 21:13   ` martin.m.dowie
2001-12-25 12:36     ` Michal Nowak
2001-12-27 14:25       ` Alfred Hilscher
2001-12-29 21:54         ` Michal Nowak
2001-12-31 17:51           ` Jasbinder S Uppal
2002-01-01 21:26             ` Michal Nowak
2000-05-25  0:00 olsonm76
2000-05-26  0:00 ` Robert Dewar
1999-03-18  0:00 newbie question Kenneth Lee
1999-03-18  0:00 ` Andreas Winckler
1999-03-19  0:00   ` Kenneth Lee
1999-03-19  0:00     ` Michael F Brenner
1999-03-19  0:00       ` ELMO
1999-03-21  0:00       ` Matthew Heaney
1999-03-18  0:00 ` Tom Moran
1999-03-18  0:00   ` Kenneth Lee
1999-03-18  0:00     ` Nick Roberts
1999-03-19  0:00 ` robert_dewar
1999-03-19  0:00 ` Michael F Brenner
1999-03-19  0:00   ` Nick Roberts
1999-03-20  0:00     ` Nick Roberts
replies disabled

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