D idioms list
Artur Skawina via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Thu Jan 8 13:25:11 PST 2015
On 01/08/15 21:23, ketmar via Digitalmars-d-announce wrote:
> i'm not sure, but maybe it worth renaming "struct inheritance" to
> "extending a struct"? or even something completely different. what it
> does is actually extending/augmenting the struct, but not
> OO-inheritance, as one cannot pass "augmented" struct to the function
> which expects original struct. at least without hackery.
'alias this' is just the D syntax for implicit conversions.
The feature /is/ crippled, but there's no need for "hackery";
at least not for simple things like that.
struct A { int a; }
struct B { A a; alias a this; string b; }
int f(A a) { return a.a+1; }
int g(ref A a) { return a.a+1; }
ref A h(ref A a) { return a; }
int main() {
B b;
return f(b)+g(b)+h(b).a;
}
artur
More information about the Digitalmars-d-announce
mailing list