Преобразование в шаблонный класс в функции

Я сожалею о простой функции, которая преобразует объекты из структуры данных, подобной массиву, в подобную связному списку, причем оба являются собственными классами 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;
}

Ошибка не является сюрпризом, вопрос в том, можно ли написать такую ​​функцию.

1 ответ

Решение

Для журнала ответ:

      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;
}
Другие вопросы по тегам