Bools reloaded

Don Clugston dac at nospam.com.au
Fri Mar 3 00:00:15 PST 2006


Tom wrote:
> In article <du71jc$1e9h$1 at digitaldaemon.com>, Bruno Medeiros says...
>> Walter Bright wrote:
>>> "Tom" <Tom_member at pathlink.com> wrote in message 
>>> news:du049t$2uv2$1 at digitaldaemon.com...
>>>> Yes, PLEASE, WHY?? Just ONE argument against pure bools, only one and I 
>>>> shut my
>>>> mouth forever!
>>> One should be very careful about stepping away from C's implicit promotion 
>>> rules for a language that aims to be a successor to C. C absolutely *buried* 
>>> Pascal.
>>>
>> Uuh, I'm not sure what Tom meant by "pure bools", nor I'm sure what you 
>> meant by "C's implicit promotion rules" (as C doesn't even have a bool). 
>> But ok, nevermind, let's pause for a moment, and get our facts straight.
>>
>> What exactly is it in bools that you Walter, want and not want?
>> I already know that the ability to write 'while(1)' as the same as 
>> 'while(true)' is one of them, but, anything more?
>> Is the behaviour of having an "implicit promotion" something you want too?
>> If so, promotion from where, from int to bool, or from bool to int?
>> Do you want or not want bool numeric operations to be an error (like 
>> boolA / boolB*2) ?
> 
> You should read the latest posts about this stuff (the most with subject "Re:
> DMD 0.148 release"). It's all said there. By "pure bools" I mean the *purist
> kind* of boolean type. A boolean type that abstracts us from the implementation.

Sorry, that's still not clear.
Bruno is right, terms like "pure bools" or "purist bools" are vague, you 
can't expect everyone to know what you mean.

For example: do you want "&" to be legal for bool types, or just "&&"?
(they mean very different things for integers). "&" normally means 
"bitwise and", but a pure bool doesn't have any bits.
Is it legal to cast from a bool to some other type?

 > A boolean type that abstracts us from the implementation.

No abstraction is perfect. Does a bool have a defined bit 
representation? (If you say 'no' to this, then I don't think a bool 
could be used in an extern function, you'd always have to convert it to 
int or something).

You need a comprehensive list of which operations are legal, and which 
are not.



More information about the Digitalmars-d mailing list