我需要将弃用标记为数组类型声明(实际上不仅仅是一个),以帮助将我们的代码迁移到更高级和更灵活的TArray<T>
泛型类型
我试过这个:
type
TArrayChars = array of Char deprecated;
但是我收到了编译错误:E2029 ';' expected but identifier 'deprecated' found
如果声明的类型不是数组,则同样有效,例如:
type
TFieldChars = set of Char deprecated;
请注意,这应该是可行的。
我错过了什么?
这似乎是德尔福的一个错误(至少10.1柏林和10.2东京)。
我接受的答案提出了一个简洁的解决方法,即:
type
TArrayCharsOld = array of Char;
TArrayChars = TArrayCharsOld deprecated;
我会向Embarcadero提交错误报告。
这是我提交的Embarcadero质量控制问题: https://quality.embarcadero.com/browse/RSP-18316
答案 0 :(得分:11)
有一种解决方法(至少在10.1柏林)。
type
TArrayCharsOld = array of Char;
TArrayChars = TArrayCharsOld deprecated;
编译。
答案 1 :(得分:5)
没什么好说的。动态数组类型声明不能标记为已弃用。
我认为这是一个缺陷。 documentation说:
&#39;提示&#39;指令平台,不推荐使用和库可能 附在任何声明中。这些指令将产生警告 编译时间。提示指令可以应用于类型声明, 变量声明,类,接口和结构声明, 类或记录,过程,函数和中的字段声明 方法声明和单位声明。
您的动态数组类型声明符合此处列出的要求,因为它是类型声明。