On Saturday, 19 October 2013 at 17:19:25 UTC, Meta wrote:
On Saturday, 19 October 2013 at 17:17:47 UTC, aldanor wrote:
On Saturday, 19 October 2013 at 16:56:50 UTC, John Colvin
wrote:
On Saturday, 19 October 2013 at 16:33:11 UTC, aldanor wrote:
I was wondering if it was possible to call D functions by
their names (strings that are not known at compile time) and
couldn't find the answer anywhere in the documentation.
Kinda like we can instantiate objects with Object.factory,
would it be possible to somehow do the same with
module-level functions? Or maybe with non-static class
methods?
You could make an associative array of function pointers with
strings as keys. Probably not the best solution but it should
work.
Thanks for the reply, this is something I thought about of
course. But what if I have hundreds of functions to dispatch
to? The current (C) implementation does exactly that,
autogenerates a sort of an associative array, but that's very
ugly and requires an extra preprocessing step.
I was thinking runtime reflections can help do this, but I'm
not quite sure where to start (and there is also the
performance question).
What about mixins?
But the function/method names are only known in runtime
(dispatched by user input parser), so mixins wouldn't really
help, or am I missing something?