Understanding opAssign and 'alias this'
Maurice
m-ou.se at m-ou.se
Sun Oct 13 14:37:29 PDT 2013
Hello,
Can anybody explain my what is happening here?
enum xxx = true;
struct A {
static if (xxx) ref A opAssign(ref const A a) { return this; }
ref A opAssign(int v) { return this; }
}
struct B {
A a;
alias a this;
}
void main() {
A a;
B b;
a = b; // [1]
b = a; // [2]
}
When xxx is false:
[1] Gives an error
[2] Compiles fine
When xxx is true:
[1] Compiles fine
[2] Gives an error
What exactly is happening here? When xxx is false, what does 'b =
a' do that is wrong when xxx is true?
I can't find any clear documentation about opAssign and its
'default' implementation.
Thanks!
-Maurice-
More information about the Digitalmars-d-learn
mailing list