Overload on opDispatch ?

Tim Matthews tim.matthews7 at gmail.com
Sat Dec 5 03:26:00 PST 2009


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.



More information about the Digitalmars-d mailing list