Шаблонный класс и Clang компилятор = ошибки
От: amsdev  
Дата: 13.08.19 11:19
Оценка:
Приветствую !

Имеется класс, который без проблем собирается классическим 32 битным компилятором и не собирается новым Clang (bcc32c):

template <typename T>
class TBasicMultiList : public TBasicJSONObject {
public:
    virtual void __fastcall                  AddItem(T *Item){DataList->Add(Item);}
    virtual void __fastcall             InsertItem(T *Item, int Index){DataList->Insert(Index,Item);}
    virtual T*   __fastcall                GetAndDeleteLastItem();
    virtual T*   __fastcall                   GetAndDeleteFirstItem();
    virtual void __fastcall                  DeleteItem(int Index);
    virtual void __fastcall                 Clear();
    virtual void __fastcall             Assign(TBasicMultiList *Source);
    virtual bool __fastcall             RestoreFromJsonObject(TlkJSONobject *SrcObj,AnsiString &Error);
    __property T*                 Items[int Index]={read=GetItemByIndex};
    __property int                 Count={read=GetDataListCount};
    __property AnsiString             AsJSONString={read=GenerateJsonString};
    __property TlkJSONobject*          AsJSONObject={read=GenerateJsonObject};
    __fastcall                       TBasicMultiList(AnsiString JsonObjectName="");
    __fastcall                       ~TBasicMultiList();
protected:
    virtual TlkJSONobject* __fastcall    GenerateJsonObject();
private:
    TList                               *DataList;
    T* __fastcall                       GetItemByIndex(int Index);
    int __fastcall                            GetDataListCount(){return this->DataList->Count;}
};
//---------------------------------------------------------------------------


Ошибки:

[bcc32c Error] MPEngineUtils.h(103): no matching function for call to 'GetItemByIndex'
[bcc32c Error] MPEngineUtils.h(104): no matching function for call to 'GetDataListCount'

Т.е. почему-то ругается на геттер функции для пропертей Count и Items. Типы совпадают, классический компилятор не ругается.
Может кто-нибудь в к курсе где косяк ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.