interface A(T) { @property T Value(); @property T Value(T value); // need to enforce alias Value this somehow }class B(T) : A!T { private T _value; @property T Value() { return _value; } @property T Value(T value) { return value = _value; }
alias Value this;
// B must use alias this so B(T) behaves like type T }