【发布时间】:2014-08-02 20:52:43
【问题描述】:
我想在记录中添加一些类运算符,但我仍然想编写代码以在较旧的 Delphi 版本下编译。
我应该使用什么定义,这样操作符才能在所有支持它的版本中编译,但在旧的 Delphi 版本中会被忽略。
type
Iso8601 = {$ifndef UNICODE}object{$else}record{$endif}
data: Integer;
{$ifdef ????} <-- what to put here
class operator Add(A: Iso8601): Iso8601;
{$endif}
end;
我知道具有成员函数的记录与 Unicode 更新一致,但我对类运算符使用什么定义?
【问题讨论】:
-
他们是
introduced in Delphi 2006,所以是{$IF CompilerVersion >= 18}。 -
@TLama,你应该这样回答。
-
显然使用编译器版本作为答案没有用......
-
如果 Embarcadero 每次引入新的语言功能时都引入一个定义,那就太好了。然后我们可以这样做:
{$ifdef class_operators} ....
标签: delphi conditional-compilation