Instantiate the template class method
Igor Stepanov
wazar.leollone at yahoo.com
Sat Mar 24 10:47:22 PDT 2012
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?
More information about the Digitalmars-d
mailing list