1 matches bool, 2 matches long
Jonathan M Davis
jmdavisProg at gmx.com
Sat Apr 27 17:53:34 PDT 2013
On Saturday, April 27, 2013 07:54:44 =?UTF-8?B?Ikx1w61z?=.Marques
<luismarques at gmail.com>@puremagic.com wrote:
> Is this what some of you are asking for?
>
> bool a = true; // ok
> bool b = false; // ok
> bool c = 1; // error, no implicit conversion
> bool c = getInt(); // error? ok?
> int x = 42;
> if(x) { ... } // ok (doesn't this imply c =
> getInt() ok too?
> if(42) { ... } // ok
if conditions and loop conditions automatically insert explicit casts, so
if(foo)
becomes
if(cast(bool)foo)
which makes it so that you can define how a user-defined type will be treated
when used in a condition and for built-in types completely removes if
statements and loops from discussions on implicit conversion as there's no
implicit conversion being used (unless you're arguing for the cast to not be
inserted for conditions, in which case, implicit conversion _would_ be used).
- Jonathan M Davis
More information about the Digitalmars-d
mailing list