Keyword to avoid not null references
Namespace
rswhite4 at googlemail.com
Mon Apr 23 10:18:29 PDT 2012
I thought that something like this
// not_null_struct.d
NotNull!(T) assumeNotNull(T : Object)(T t) {
return NotNull!(T)(t);
}
@property
NotNull!(T) makeNotNull(T : Object)() {
T t = new T();
return assumeNotNull(t);
}
// not_null.d which import not_null_struct.d
NotNull!(Foo) _convert() {
//return NotNull!(Foo)(this); // prints: Stack overflow
return assumeNotNull(this);
}
alias _convert this;
would allow me to convert Foo to NotNull!(Foo) implicit. But it
doesn't work. I get this error:
not_null.d(37): Error: template instance
not_null_struct.assumeNotNull!(Foo) recursive expansion
Line 37 is the return in the _convert method.
Does anybody know why? I thought that would a smart idea...
More information about the Digitalmars-d-learn
mailing list