On Sun, 27 Dec 2009 01:42:07 +0100, Ali Çehreli <[email protected]> wrote:

I've tested the following with dmd 2.037.

The compiler generated opAssign is disabled by the definition of opAssign(int). The compiler rejects the following assignment operation. (The error message is in the comment below.)

Is this by design?

When I also define post-blit, the compiler generated opAssign is available again and seems to work correctly. (My struct doesn't have any members for brevity.)

The program below compiles when this(this) is provided.

void main()
{
     S s0;
     s0 = s0;    // ERROR
}

This piece of code does post-blit, not opAssign(int).
Try defining opAssign(S). That should work here.
The problem is, opAssign(int) takes a right-hand parameter of type int,
whereas s0 = s0; has a rhs of type S.

--
Simen

Reply via email to