我的OO泛型设计出错.我该如何解决它?

Iva*_*nov 1 delphi generics delphi-2009 generic-programming

我得到"E2511类型参数'T'必须是第三类的类类型" .

type TSomeClass=class
end;

ParentParentClass<T>=class 
end;

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

ChildClass<T: TSomeClass> = class(ParentClass<T>)
end;
Run Code Online (Sandbox Code Playgroud)

我正在尝试为任何数据类型(ParentParentClass)编写一个简单的通用数组包装器,但因为我无法释放类型idenitifiers(如果T是TObject然后是Tobject(T).Free),我创建了第二个类,对类类型很有用,所以我可以释放对象.

第三个类是我使用我的包装器,但编译器抛出该错误.我如何编译?

Mas*_*ler 5

这是Delphi 2009的泛型处理中的一个错误.它在D2010中得到修复.