1 matches bool, 2 matches long

Jonathan M Davis jmdavisProg at gmx.com
Mon Apr 29 11:03:25 PDT 2013


On Monday, April 29, 2013 09:54:40 Steven Schveighoffer wrote:
> On Sat, 27 Apr 2013 12:51:48 -0700, Walter Bright
> 
> <newshound2 at digitalmars.com> wrote:
> > On 4/26/2013 7:36 PM, Mehrdad wrote:
> >> Walter, you're completely missing the point.
> > 
> > I completely understand it is a perception problem. Some people see bool
> > as a 1 bit integer (including me). Some see bool as something very
> > distinct from integers (including you).
> 
> short x = cast(short)0x10000;
> assert(x == 0);
> 
> bool b = cast(bool)2;
> assert(b == 1); // NOT 2s complement
> 
> bool is not an integer. It doesn't behave like any other integer type.
> Because it has some power to implicitly cast to int, this does not make it
> an integer.

It also isn't considered to be an integral type per std.traits.isIntegral. 
isIntegral only considers byte, ubyte, short, ushort, int, uint, long, and 
ulong to be integral types.

- Jonathan M Davis


More information about the Digitalmars-d mailing list