有没有按版本排列的Delphi编译器内置函数列表?

5

正如其他SO问题中所回答的那样,现代Delphi终于支持编译器内置函数,例如AtomicIncrement

是否有某个列表,列出了哪个版本的Delphi引入了哪个内置函数,这样我就可以使用{$if CompilerVersion ...}来保持代码向后兼容(使用内联汇编),并为未来的编译器使代码更加简洁?


你可以使用 {$IFDEF NEXTGEN} 来进行 AtomicIncrement、AtomicCmpExchange、AtomicExchange 和 AtomicDecrement。 - LU RD
@LURD 那样做会使你失去在桌面平台上使用它们的能力,这将是一件遗憾的事情。 - David Heffernan
@DavidHeffernan,我知道。我只是在提到文档:在多平台应用程序中,原子内置函数可以在{$IFDEF}内用于AUTOREFCOUNT或NEXTGEN条件。 使用原子内置函数代替汇编语言 - LU RD
@SertacAkyuz,我找不到这样的部分,它在哪里? - David Heffernan
@David - 好的,所以这就像是“addr”。我猜文档是唯一的来源了。 - Sertac Akyuz
显示剩余4条评论
1个回答

5
好的,您可以使用这份文档,但我无法保证其准确性。
XE7:http://docwiki.embarcadero.com/RADStudio/XE7/zh/Delphi_Intrinsic_Routines XE6:http://docwiki.embarcadero.com/RADStudio/XE6/zh/Delphi_Intrinsic_Routines XE5:http://docwiki.embarcadero.com/RADStudio/XE5/zh/Delphi_Intrinsic_Routines XE4:http://docwiki.embarcadero.com/RADStudio/XE4/zh/Delphi_Intrinsic_Routines XE3:http://docwiki.embarcadero.com/RADStudio/XE3/zh/Delphi_Intrinsic_Routines XE2:http://docwiki.embarcadero.com/RADStudio/XE2/zh/Delphi_Intrinsic_Routines XE:http://docwiki.embarcadero.com/RADStudio/XE/zh/Delphi_Intrinsic_Routines 2010:http://docwiki.embarcadero.com/RADStudio/2010/zh/Delphi_Intrinsic_Routines 还有其他版本的文档。
实际上,这个内置函数列表是不完整的,没有您感兴趣的函数。这很遗憾。如果您想知道特定函数是从哪个版本开始添加的,那么您可以自行查看。如果您想要一个覆盖每个函数的官方列表,那么似乎不存在这样的列表。我猜您只能在没有它的情况下使用,或者创建这个列表。
回到文档,您可以考虑使用这个列表:

考虑到官方文档的不可靠性,你准备相信它吗?

因此,我建议你自己测试。这样做的好处是你可以确定你的代码是正确的。


这种不完整性正是我尝试查看是否有人尝试创建这样一个列表的原因。显然,这是我们可以从当前的Embarcadero文档中获得的最好结果。注意:对于原子操作,我将使用XE3,它似乎可以工作。 - Ritsaert Hornstra
如果有人创建这样的列表,你会相信吗?我知道我不会! - David Heffernan
2
文档完全没有介绍XE7引入的新内置函数,例如GetTypeKindIsManagedHasWeakRef及其作用。 - Stefan Glienke
1
@Stefan,我不知道Emba在想什么。我的经验是编写文档有时会揭示设计缺陷。发布然后再记录只会让你失败。 - David Heffernan
1
@MaximMasiutin 这个问题不需要更新到更近的版本。它涉及到在XE2/XE3时间范围内添加的一个函数。问题中的链接已经足够,甚至可以说有些过多了。 - David Heffernan

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