On Tue, 26 Jul 2011 07:54:54 -0400, Diego Canuhé <canuh...@gmail.com> wrote:

Hi,
isn't that the way it's supposed to work? I mean

void show(int a) { writeln(a); }

void main() { show(null); }

won't compile either.
Shouldn't bar be some kind of pointer?

null should be considered as the type of the class, not void *. You should not be able to override the behavior of opAssign as it pertains to assigning to a class instance. In other words, you should *never* be able to override x = null where x is a class instance.


btw, today I read "opAssign can no longer be overloaded for class objects"
here:

http://www.d-programming-language.org/features2.html

is that no longer valid?

Here is the spec. I would not trust that features2, it's probably out of date.

http://www.d-programming-language.org/operatoroverloading.html#Assignment

-Steve

Reply via email to