Ошибка в моем дизайне OO Generics. Как мне обойти это? - PullRequest
1 голос
/ 14 мая 2010

Я получаю "E2511 Тип параметра 'T' должен быть типом класса" для третьего класса.

type TSomeClass=class
end;

ParentParentClass<T>=class 
end;

ParentClass<T: class> = class(ParentParentClass<T>)
end;

ChildClass<T: TSomeClass> = class(ParentClass<T>)
end;

Я пытаюсь написать облегченную обертку Generic Array для любого типа данных (ParentParentClass), но поскольку я не могу освободить идентификаторы типов (если T - TObject, то Tobject (T) .Free), я создал второй класс, который полезен для типов классов, поэтому я могу освободить объекты.

В третьем классе я использую свою обертку, но компилятор выдает эту ошибку. Как мне сделать так, чтобы он компилировался?

1 Ответ

5 голосов
/ 14 мая 2010

Это ошибка в обработке обобщенных типов Delphi 2009 . Это было исправлено в D2010.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...