digitalmars.D - Instantiate the template class method
- Igor Stepanov (26/26) Mar 24 2012 Hi! I engaged in addition to dmd with runtime reflection and
Hi! I engaged in addition to dmd with runtime reflection and
there was a problem:
If we have any template class, the real instantiated only those
methods that are used.
And to сonstruct the runtime reflection, I need to instantiate
the other methods. And here is a question: how to do it.
I write code like this:
static void WriteFunc(Dsymbol* root, FuncDeclaration* fd)
{
if(root->inTemplateInstance() && fd->semanticRun < PASSobj)
{
assert(fd->inTemplateInstance());
TemplateInstance* templ = fd->inTemplateInstance();
fd->scope->parent = root;
fd->semantic(fd->scope);
fd->semantic2(fd->scope);
fd->semantic3(fd->scope);
assert(fd);
assert(fd->scope);
fd->toObjFile(0);
}
}
In the trivial case, everything is fine.But if this function has
internal functions / delegates /foreach-loops I have the error.
Does anyone can tell me how to correctly instantiate the template
class method?
Mar 24 2012








"Igor Stepanov" <wazar.leollone yahoo.com>