References in D
bearophile
bearophileHUGS at lycos.com
Thu Oct 4 04:38:49 PDT 2012
Timon Gehr:
>> To quote (loosely) Mr. Walter Bright from another discussion:
>> how many
>> current bugs in dmd are related to default null references?
>
> More than zero.
A >0 frequency of bugs caused by something can't be enough to
justify a language feature. You need a "high enough" frequency :-)
--------------------------
Alex Burton:
>> Doing null references in C++ is simple:
>>
>> int *p = NULL;
>> int& r = *p;
>>
>> r = 3; // crash
>
>
> IMHO int * p = NULL is a violation of the type system and
> should not compile.
> NULL can in no way be considered a pointer to an int.
I don't agree. int* is a raw pointer, and a raw pointer is
allowed to contain a null, so the first line is OK.
The problem is in the second line: in a better designed language
this line needs to be a compile-time error, because p can be
null, while r can't be null:
int& r = *p;
The language has to force you to initialize the reference with
something that is valid.
Bye,
bearophile
More information about the Digitalmars-d
mailing list