Reply to Brian,
I want to use a chaining system for easy setting of object attributes,
which would work great for a single object, unfortunately derived
classes cannot inherit the chained functions implicitly, whats the
best way around this?
class Base {
int x;
Base foo(int x_) {
this.x = x_;
return this;
}
}
class Derived : Base {
Derived bar(int y_) {
return this;
}
}
// usage:
auto m = (new Derived).foo(10).bar(x); // bar can be accessed through
foo
mixins:
template BaseT(){
typeof(this) foo()(int x_) {
this.x = x_;
return this;
}
}
class Base {
int x;
mixin BaseT!();
}
template DerivedT()
{
typeof(this) bar(int y_) {
return this;
}
mixin BaseT!();
}
class Derived : Base {
mixin DerivedT!();
}
void main()
{
int x;
// usage:
auto m = (new Derived).foo(10).bar(x); // bar can be accessed through foo
}