There is no problem if it is only static opDispatch or non-static one. But D does not allow to override theirs together.
We cannot compile this: class A{ int f(){return 10;} static int f(){return 20;} } void main(){ auto a = new A(); assert(a.f() == 10); assert(A.f() == 20); } Thanks. bearophile wrote: > But static opDispatch works: > > struct Foo { > static void opDispatch(string name, Args...)(Args args) { > static assert(name == "hello"); > } > } > void main() { > Foo.hello(10, 20); > } > > > So if you have found a bug you may add a minimized case in Bugzilla.