string <-> null/bool implicit conversion
via Digitalmars-d
digitalmars-d at puremagic.com
Fri Aug 21 04:50:58 PDT 2015
On Friday, 21 August 2015 at 11:43:11 UTC, Steven Schveighoffer
wrote:
> On 8/21/15 7:34 AM, "Marc =?UTF-8?B?U2Now7x0eiI=?=
> <schuetzm at gmx.net>" wrote:
>> I disagree. `is null` is the one that should be illegal. `is`
>> is
>> supposed to do a bitwise comparison, but `null` is usually
>> just a
>> pointer/reference, while a slice consists of both a reference
>> and a
>> length. Which of those are compared?
>
> Both. null in this context is actually an array (with null
> pointer and zero length).
>
> null is technically a no-type placeholder (defaulting to void *
> without context). In different contexts it means different
> things.
>
> arr is null -> both pointer and length are 0
> arr == null -> arr contains the same elements that null
> contains.
> arr.ptr == null -> arr contains a null pointer (length could
> technically be non-zero).
Thank for clarifying, I suspected that. Still not a good idea to
use, IMO.
More information about the Digitalmars-d
mailing list