From: <kar...@li...> - 2006-09-08 16:44:11
|
Please help my with template translating. I know that template support in OpenCXX incomplete, but i need simple thing. For example we want process next code: template<class T> class MyClass { int member; }; void main() { MyClass<float> object; object.member = 1; } How we find out that type of (object.member) is "int" ? I try next approach: Ptree* ClassWalker::TranslateAssign(Ptree* exp) { ................. metaobject = GetClassMetaobject(type); if (metaobject != NULL) { TypeInfo memberType; Environment *metaobjectEnv = metaobject->GetEnvironment(); if (metaobjectEnv != NULL) { if (metaobjectEnv->Lookup(member, memberType)) { Ptree *typeName = memberType.FullTypeName(); if (typeName != NULL) typeName->Display(); } } } ................. } For non template class like this class MyClass { int member; }; void main() { MyClass object; object.member = 1; } on display we get [int] But for template class metaobject is NULL. How i can get [int] for template class? P.S. I use occ-core-20050912.tar.gz. |