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