opIndexDispatch?
Ali Çehreli via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Oct 12 18:09:06 PDT 2016
On 10/10/2016 12:01 PM, Yuxuan Shui wrote:
> Hi,
>
> Why is there no opIndexDispatch for overloading a[x].func() ?
I could not understand the question fully but would using an element
proxy work?
import std.stdio;
struct ElementProxy {
size_t index;
void opDispatch(string name, Args...)(Args args) {
writefln("%s() is called for index %s with args %s", name,
index, [ args ]);
}
}
struct A {
auto opIndex(size_t index) {
return ElementProxy(index);
}
}
void main() {
auto a = A();
a[0].foo(42);
a[1].bar("hello", "world");
}
Prints
foo() is called for index 0 with args [42]
bar() is called for index 1 with args ["hello", "world"]
Ali
More information about the Digitalmars-d-learn
mailing list