Это, конечно, похоже на ошибку, но у меня есть только пробная версия, так что, возможно, она была исправлена.
ITestInterface = interface
['{9445CED8-4DBA-4EDB-9897-60980B438BE4}']
procedure Foo1;
procedure Foo2;
end;
TTest = class(TInterfacedObject, ITestInterface)
end;
Вышеупомянутое не будет компилироваться. но делает следующее!
ITestInterface<t> = interface
['{9445CED8-4DBA-4EDB-9897-60980B438BE4}']
procedure Foo1;
procedure Foo2;
end;
TTest<T> = class(TInterfacedObject, ITestInterface<T>)
end;
Обновлено: я только что обнаружил, что он потерпит неудачу, если вы попытаетесь создать экземпляр TTest. Немного непоследовательно, но не так уж плохо!





Yes, a bug. http://qc.codegear.com/ - это место, где можно сообщать об ошибках.
Поскольку у меня есть только пробная версия, я не был уверен, что это уже исправлено в полной версии.