|
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.
|