我在感叹一个简单的函数,它将对象从类似数组的数据结构转换为类似链表的结构,两者都是 ArchiCAD 自己的类。
问题是是否可以对任何类型的对象执行此操作。
代码如下所示:
GS::Array<class T> *GetItemsFromNeig(API_Neig **p_neigs)
{
UInt32 nSel = BMGetHandleSize((GSHandle)p_neigs) / sizeof(API_Neig);
GS::Array<T>* resultArray = new GS::Array<T>;
for (UInt32 ii = 0; ii < nSel; ++ii) {
resultArray->Push((T) *p_neigs[ii]); //incomplete type is not allowed
}
return resultArray;
}
错误并不奇怪,问题是是否可以编写这样的函数。