BigInt bool assign

Timon Gehr timon.gehr at gmx.ch
Sat Dec 24 09:45:10 PST 2011


On 12/24/2011 05:02 PM, Derek wrote:
> On Sun, 25 Dec 2011 02:50:15 +1100, Timon Gehr <timon.gehr at gmx.ch> wrote:
>
>>> Although BOOL is typed as 'int', it really has the semantics of 'bool'.
>>> We have an example of this in D1's opEquals().
>>> I think this is reason why implicit conversion bool -> int exists.
>>
>> It exists because it is handy and makes sense. Would you also want to
>> ban implicit short -> int conversion?
>
> A 'short' is a type of integer, an 'int' is a type of integer, but a
> 'bool' is NOT a type of integer.
>
> One can do arithmetic with two integers

If so, then 'short' is not a type of integer.

> but what does 'TRUTH * TRUTH'
> mean? Or what does 'FALSEHOOD - TRUTH' mean?
>

TRUTH and FALSEHOOD are in my understanding not values, so performing 
operations on them is nonsensical.

Having the symbols {0, 1} as the boolean values is a common convention, 
even outside programming language implementations or computer 
science/digital design. So TRUE * TRUE = 1*1 = 1 and FALSE - TRUE = 0 - 
1 = -1 makes sense.



More information about the Digitalmars-d mailing list