digitalmars.D - opIndexAssign does not give a real lvalue, is this a bug?
- Sam McCall (20/20) Jun 29 2004 If I pass an array element into a function expecting an inout parameter,...
If I pass an array element into a function expecting an inout parameter,
this compiles fine fine:
void foo() {
Object[] o;
bar(o[0]);
}
void bar(inout Object x) {}
But if I do the same thing with a class with index overloads, I get the
error "test.d(5): this.opIndex(0) is not an lvalue":
class Test {
Object opIndex(int i) { return null; }
Object opIndexAssign(Object o,int i) { return o; }
void foo() {
bar(this[0]);
}
}
void bar(inout Object x) {}
I think I should be able to do this. It makes it trivial to overload
foreach if you have indexers, and things like that.
Sam
Jun 29 2004








Sam McCall <tunah.d tunah.net>