Don:
> The only time when you want to allow an implicit conversion to bool is
> when you have some kind of "smart bool" struct which is supposed to be a
> drop-in replacement for "bool". It's quite distinct from
> if(x) --> if(x!=0).
When the complex numbers are implemented by a struct in the standard library
(or as in the original case of BigInts), I may like to keep being able to write:
if (x) { ... }
Where x is a Complex struct or BigInt struct that defines something like an
opBool.
In both those situations you can write:
if (x != 0) { ... }
They just need to define opEquals(int).
Bye,
bearophile