-1

我在感叹一个简单的函数,它将对象从类似数组的数据结构转换为类似链表的结构,两者都是 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;
}

错误并不奇怪,问题是是否可以编写这样的函数。

4

1 回答 1

0

对于日志,答案是:

template <class T>
GS::Array<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]);
    }

    return resultArray;
}
于 2021-11-06T12:11:12.977 回答