On Wed, 26 Oct 2011 10:15:33 -0400, Gor Gyolchanyan <gor.f.gyolchan...@gmail.com> wrote:

1. opDispatch is no good for overloading when the set of methods are
defined at run-time.

For those cases, you must use the runtime interface that opDispatch will use directly. D does not have a way to call a function by string at runtime.

call("functionName", arg1, arg2, arg3)

opDispatch simply provides a way to write cleaner code when you know the name of the function.

Even in dynamic languages, it's uncommon to call functions based on runtime strings.

2. opDIspatch doesn't cover operators (why?).

operators are not function symbols, and are already covered by templates. It should be as simple as:

opBinary(string s, T...)(T args) if(isValidOperator!s)
{
   call(s, args);
}

-Steve

Reply via email to