Smart pointers instead of GC?

Dicebot public at dicebot.lv
Tue Feb 4 14:39:11 PST 2014


On Tuesday, 4 February 2014 at 22:30:39 UTC, Walter Bright wrote:
>> you can write them twice  or use a template (except in a 
>> virtual context), and in both cases
>> you keep the efficiency of not checking for null when the 
>> argument is not nullable.
>
> That's just what I wish to avoid. Consider adding more pointer 
> types - the combinatorics quickly explode. Heck, just have two 
> pointer parameters, and you already have 4 cases.
>
> I wonder how Rust deals with this.
>

I think it is pretty much same thing as with using specialised 
types (i.e. SQLEscapedString) - your API explodes exponentially 
if you try to write code with methods/functions that support all 
of them but in practice you shouldn't. Same is here. Some 
functions should always deal with with nullable types and most - 
only with non-nullable. Tricky part is writing your code in such 
way that separation is clear but good language guidlines and 
examples can solve it.

Also non-nullable types should be implicitly cast to nullable 
parameters so you don't always need to support all cases 
distinctively.


More information about the Digitalmars-d mailing list