References in D

Henning Pohl henning at still-hidden.de
Wed Oct 3 09:36:23 PDT 2012


On Wednesday, 3 October 2012 at 16:11:53 UTC, Franciszek Czekała 
wrote:
> As my comments indicated : the presence of a value does not
> guarantee a valid value by itself. The C++ declaration int n; 
> introduces a value, good luck using it.
auto c = new Class();

Tell me, does c contain an invalid value now?

> In short, having null references is useful (a value outside of 
> the type cannot be introduced easily unless the language gives 
> a hand, check eof() in C++ character_traits),
Null references are useful, that's right. Nobody wants to take 
them away. Just put something like a questionmark behind the 
reference type to indicate that it's nullable.

> while forcing non-null references hardly offers any significant 
> advantage.
1) Performance, no or very few null-checks.
2) Code is shorter, looks better, less duplications.
3) Clarity. User of functions know, whether a function can return 
null at compile time.

> Not enough to justify complicating the syntax of the language 
> to have it both ways.
Not really. It's all about one question mark for example.




More information about the Digitalmars-d mailing list