comp.lang.ada
 help / color / mirror / Atom feed
From: Simon Wright <simon.j.wright@mac.com>
Subject: Re: generic function and overloading
Date: Thu, 18 Oct 2007 21:20:52 +0100
Date: 2007-10-18T21:20:52+01:00	[thread overview]
Message-ID: <m2bqaw6uor.fsf@mac.com> (raw)
In-Reply-To: wccabqgl8hz.fsf@shell01.TheWorld.com

Robert A Duff <bobduff@shell01.TheWorld.com> writes:

> But do you really want to do arithmetic on these types,
> as well as setting/clearing bits?  If all you want to
> do is set/clear bits, you might want to consider using
> a packed array of Boolean.  Then to set the Nth bit you
> can say:
>
>     X (N) := True;
>
> Alternatively, a packed array of type Bit, where:
>
>     type Bit is range 0..1;
>
> If the individual bit numbers have some specific meaning,
> the index type could be an enumeration type.

Will give surprising results on a big-endian machine. At least code
using shifts and masks is portable if gruesome -- and no more gruesome
than code I've written which says

   type Unrepresented is ..
   Internal : Unrepresented;
   ...

   if System.Default_Bit_Order = System.High_Order_First then
      declare
         type Represented is ..
         for Represented use ..
            -- record rep with big-endian usage
         External : constant Represented := Internal;
      begin
         Output (External);
      end;
   else
      --  equivalent for l-e



  reply	other threads:[~2007-10-18 20:20 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-18  7:28 generic function and overloading eliben
2007-10-18  8:18 ` Jean-Pierre Rosen
2007-10-18  9:31 ` Dmitry A. Kazakov
2007-10-18  9:33   ` Dmitry A. Kazakov
2007-10-18 10:32 ` Georg Bauhaus
2007-10-18 11:07 ` Stephen Leake
2007-10-18 11:30 ` Stefan Lucks
2007-10-18 15:58 ` Robert A Duff
2007-10-18 20:20   ` Simon Wright [this message]
2007-10-18 21:23     ` Robert A Duff
2007-10-19  5:19       ` Simon Wright
2007-10-19 13:59         ` Robert A Duff
2007-10-18 18:58 ` Dr. Adrian Wrigley
2007-10-18 22:30   ` Adam Beneschan
replies disabled

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