How can you call a stored function in an AA with proper number of arguments converted to the proper type?

Zekereth via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Jul 11 13:54:12 PDT 2016


Here's the basic code I'm playing with:

struct MyCmd
{
	Variant func;
	// Has other members.
}

MyCmd[string] functions_;

void addCommand(T)(const string name, T func)
{
	MyCmd cmd;
	cmd.func = Variant(func);

	functions_[name] = cmd;
}

void process(string[] args) // args is only available at runtime.
{
	const string name = args[0]; // Name of the command

	if(name in functions_)
	{
		MyCmd cmd = functions_[name];
		cmd.func(/*Call with proper number of arguments converted to 
the proper type*/);
	}
}

I initially got idea from the D Cookbook Chapter Reflection: 
Creating a command-line function caller. But the code has to 
reside in the same module as the functions it will use.

So I arrived at this code but can't figure out how to call the 
actual stored function.

Thanks!


More information about the Digitalmars-d-learn mailing list