On Thursday, 22 January 2015 at 13:06:42 UTC, Zaher Dirkey wrote:
See example bellow, i want to pass object to function nullIt
and want this function to null it.
----
import std.stdio;
static if (!is(typeof(writeln)))
alias writefln writeln;
class MyClass{
}
void nullIt(ref Object o)
{
o = null;
}
void main()
{
auto o = new MyClass();
nullIt(o);
if (o is null)
writeln("It is null");
}
Thanks in advance.
o needs to be typed as Object:
Object o = new MyClass();
nullIt(o);
If the compiler accepted your original code, it would be possible
to assign a non-MyClass to o:
void messWithIt(ref Object) o) {o = new Object;}
auto o = new MyClass();
messWithIt(o); /* If this compiled, o would be typed as
MyClass, but would not actually be a MyClass. */