Checking if a string is null

Derek Parnell derek at psyc.ward
Wed Jul 25 23:46:58 PDT 2007


On Thu, 26 Jul 2007 08:37:13 +0200, Oskar Linde wrote:

> Manfred Nowak wrote:
>> Frits van Bommel wrote
>> 
>>> But the fact of the matter is, 'T[] x = null;' reserves space for
>>> the .length and sets it to 0. If you have a suggestion for a
>>> different value to put there, by all means make it.
>> 
>> Suggestion:
>> After `T[] x= null;' `x.length == size_t.max' and `x.ptr == null', i.e.  
>> `size_t.max' will no more be a valid length for an array.
> 
> Uhu... Why whould a slice of the full addressable memory space be a good 
> initialization value?

Maybe x.ptr = size_t.max and x.length = size_t.max might be useful
representation of a null array as it is an illegal RAM reference otherwise.
But I know, its too late now and probably too expensive at run-time to
implement.

>> This is a hack to avoid some overhead in some places, but may introduce  
>> more overhead in other places.
> 
> This entire discussion is trying to make todays T[] -- a slice type with 
> value semantics and some provisions for making it behave as an array in 
> some cases -- into a pure array type with a well defined null. You can't 
> do that without breaking its slice semantics. A much better suggestion 
> is Walter's T[new]. Make T[] remain the slice type it is today and make 
> a distinct array type (preferably a by-reference type).

You may very well be correct.

-- 
Derek Parnell
Melbourne, Australia
"Down with mediocrity!"


More information about the Digitalmars-d-learn mailing list