NEXTGEN编译条件有什么用?

What is the use of NEXTGEN compiler conditional?

在处理一个项目时,我们收到了 4000 多个警告。 为了删除其中的一些,我发现了一个编译器指令 NEXTGEN.

使用该指令后,我发现对 257 的警告减少了很多。

我想知道我们在使用编译器指令时是否有任何问题。这个指令对我的 windows 应用程序有什么缺点吗? 我正在使用 Delphi 10

在 Embarcadero 网站上,我找到的信息非常少。

谁能告诉我一些相同的事情?

Delphi的NEXTGEN条件符号标志着下一代ARC编译器。 Windows 和 OSX 编译器不是 NEXTGEN 编译器。 iOS 和 Android 编译器是 NEXTGEN。 Linux 编译器在 10.2 Tokyo 的初始版本中定义了 NEXTGEN,但自 10.3 Rio 以来它没有定义。

任何为 Windows 编译的带有 NEXTGEN 标记的代码在当前编译器中将被忽略。

参见Conditional symbols

Defined for compilers (such as the Delphi mobile compilers) that use "next-generation" language features, such as 0-based strings. New in XE4/iOS

更新:10.4 悉尼

NEXTGEN 符号以及 AUTOREFCOUNTWEAKINSTREF 符号已从所有编译器中删除。

NEXTGEN条件符号由编译器定义。例如,它是为使用 ARC 的移动编译器定义的。它没有为传统的 Windows 和 Mac OS 编译器定义。

您不得在代码中定义它。您正在使用传统编译器编译代码,而不是 NEXTGEN 编译器。不管这些编译器警告的原因是什么,定义 NEXTGEN 都不是解决方案。