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
next prev parent 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