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