本文介绍了当我声明一个通用的“T的数组”时,我应该怎样处理内部错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

本机无法在XE2 Update 3中使用[DCC致命错误] Test.pas(22):F2084内部错误:URW1147进行编译

This unit fails to compile in XE2 Update 3 with "[DCC Fatal Error] Test.pas(22): F2084 Internal Error: URW1147"

unit Test;

interface

type
  TSorter<T> = procedure(var Values: array of T);

  TTest = class
  public
    procedure Sort<T>(const Sorter: TSorter<T>);
  end;

implementation

procedure TTest.Sort<T>(const Sorter: TSorter<T>);
begin
end;

end.

我已提交QC报告:。

有人对此有一个解决方法的想法?

Does anyone have an idea about workaround for this?

推荐答案

如果将TSorter声明替换为 TSorter< T> = procedure(var Values:TArray< T>); 它在XE上编译得很好。

If you replace TSorter declaration with TSorter<T> = procedure(var Values: TArray<T>); it compiles fine on XE.

这篇关于当我声明一个通用的“T的数组”时,我应该怎样处理内部错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-28 09:36