On 29.04.2011 17:05, Steven Schveighoffer wrote: > opAssign is only invalid if you are assigning something that implicitly > converts to that type.
Well, the documentation says: "The assignment operator = can be overloaded if the lvalue is a struct aggregate, and opAssign is a member function of that aggregate." Thus, I assume that for classes it shouldn't be possible, or did I get it wrong? > x = y is equivalent to x.opAssign(y). So x is null, you are dereferencing a > null pointer. This I understand, of course - the main point is why it is accepted for objects at all. BTW, it seems that overloads can be static - what is the semantic of static overload? (static opAssign() also fails). /Alexander