请注意,这不是Pointer to generic type的副本。这是一个后续问题。
我知道可以定义指向任何泛型类型的指针
只是Delphi让它变得复杂。这本来是不可能的,但是由于编译器错误,选项漏掉了。
这就是链接问题的答案。
我的问题是:
如何定义指向通用记录的指针而不将其封装在周围的类中?
示例代码:
TGenericRecord<T> = record
Data: integer;
Procedure SomeMethod; inline; <<<< inlining is vital here.
end;
我想获得一个指向TGenericRecord的类型安全指针 我不想要将记录包装在周围的类中,因为在我的实验中,我发现它禁用了内联。
如何获取指向此记录的类型安全通用指针。
用例
{class} function create(size: integer): PGenericRecord{<T>}
除了堆栈之外,我希望能够在堆上创建记录。
答案 0 :(得分:2)
我认为你最好的选择可能是这样的:
type
TMyStaticClass<T> = class
public
type
TRec = record
....
end;
PRec = ^TRec;
public
class function NewRec: PRec; static;
end;
我没有编译器方便检查这是否编译,但我觉得它应该......