NEXTGEN编译器条件的用途是什么?

4
在项目中,我们遇到了4000多个警告。为了消除其中的一些警告,我找到了一个编译器指令NEXTGEN
使用这个指令后,我发现警告数量大大减少至257个。
我想知道在使用这个编译器指令时是否存在问题。对于我的Windows应用程序,这个指令有没有任何缺点。我正在使用Delphi 10
在Embarcadero网站上,我发现了非常少的信息。
有人能告诉我一些相关信息吗?

我在谷歌上输入了“docwiki nextgen”,第一个搜索结果记录了这个条件语句。我建议你阅读这个主题:https://dev59.com/wmEi5IYBdhLWcg3wUK2C - David Heffernan
1
是时候挽起袖子解决那些警告了。不过具体要怎么做取决于这些警告是关于什么的。 - Stefan Glienke
你现在肯定有这个问题的答案了吧? - David Heffernan
2个回答

8
Delphi的NEXTGEN条件符号标记着下一代ARC编译器。Windows和OSX编译器不是NEXTGEN编译器。iOS和Android编译器是NEXTGEN编译器。10.2 Tokyo的Linux编译器的初始版本中有定义NEXTGEN,但自10.3 Rio以来就没有了。
任何在Windows上编译且带有NEXTGEN标记的代码都将被当前编译器忽略。
请参见条件符号
定义为使用“下一代”语言特性(例如基于0的字符串)的编译器(如Delphi移动编译器)。 XE4/iOS中的新功能 更新:10.4 Sydney
所有编译器中都已删除NEXTGEN符号,以及AUTOREFCOUNTWEAKINSTREF符号。

2
小问题:指令是编译器的命令,例如{$D+}或{$WARN xxxx OFF}。编译器定义的条件不是“指令”,而是用于条件指令{$IF Defined(xxxx)}或{$IFDEF xxxx},其中xxxx可以是NEXTGEN。 - Allen Bauer
从10.3版本开始,Linux不再支持NEXTGEN。 - Toon Krijthe
1
@ToonKrijthe 感谢您的提醒。我已经更新了答案。 - Dalija Prasnikar
1
在10.4版本中,iOS和Android编译器不再定义NEXTGEN。Embarcadero决定采用“统一”模型来管理所有编译器,因此所有的NEXTGEN功能都已关闭,并且所有移动设备上被关闭的预先NEXTGEN功能都已重新启用。 - Remy Lebeau

3
"

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

你不应在你的代码中定义它。你正在使用传统的编译器编译你的代码,而不是NEXTGEN编译器。无论是什么导致这些编译器警告,定义NEXTGEN都不是解决方案。

"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接