[英]declaring a generic type “of a generic type”
不完全确定如何提出这个问题,但是我使用lazarus v1.8.2尝试使用另一个泛型类型定义一个泛型类型:
//initial interface
IOtherInterface<T> = interface
function ExampleFunction : T;
end;
//some generic record
TSomething<T> = record
Something : T;
end;
//attempting to further genericize
IOtherSomething<T> = IOtherInterface<TSomething<T>>;
我收到的错误是: Fatal: Syntax error, "," expected but "<" found
我正在使用模式delphi,因为我希望对两个编译器都保持兼容。 我以前很有信心在delphi中做过这样的专业化工作,但我没有很大的机会来测试专业版本。 这是对FPC方面的限制,还是我缺少某些东西? 任何帮助是极大的赞赏
我不确定
IOtherSomething<T> = IOtherInterface<TSomething<T>>;
就是要在这里实现。 如果您要扩展接口,则需要类似
IOtherSomething<T> = interface(IOtherInterface<TSomething<T>>)
end;
可以在Delphi中编译。 我没有Lazarus要测试。
如果这不是您要尝试的操作,我将删除答案。
如果是,我将进行编辑以删除这些评论。
Afaik您仍然应该声明IOtherInterface,以后使用TSomething对其进行专门化。
Generics.Collections以这种方式工作(TPair在TSomething中扮演角色)。
无论如何,FPC修复程序存在双重专业化问题,它将>>或<<视为移位令牌。 这是固定在行李箱中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.