Jacob Carlborg wrote:
Would it be a good idea to allow overloading on opDispatch to make the
following compile, what do you think?
import std.stdio;
class C
{
void opDispatch(string s, ARGS...) (ARGS args)
{
writefln("S.opDispatch('%s', %s)", s, typeof(args).stringof);
}
void foo (string s)
{
writeln("in asd");
}
}
void main()
{
C c = new C;
c.foo("bar"); // calls C.foo
c.foo("bar", "bar"); // calls C.opDispatch
c.foo(3); // calls C.opDispatch
}
Do you think it would be a good idea? or just want to know what others
think for no obvious motive? If the latter: absolutely not. It would be
a major source of bugs. That code would be much safer if C.foo was a
private method that opdispatch called when it determines its arguments
met the requirements.