【发布时间】:2012-01-08 11:47:39
【问题描述】:
考虑以下 sn-p:
requires
designide,
rtl,
vcl,
{$IF RTLVersion < 19.0} // E2026 Constant expression expected
//{$IF CompilerVersion = 22.0} // same as above
vcljpg;
{$ELSE}
vclimg;
{$IFEND}
这似乎在语法上是绝对正确的。但是,编译器对此感到窒息并报告Constant expression expected。这里到底发生了什么?
技术:目前仅在 XE (15.0.3953.35171) 上测试。
当然,也欢迎提出解决方法。
【问题讨论】:
-
FWIW:在 D2007 中,
{$IF RTLVersion < 19.0}测试在containsclause 之后使用。 -
@Ulrich Gerhardt,非常有趣的观察,谢谢! (与 XE 确认)
标签: delphi compiler-construction delphi-xe conditional-compilation conditional-expressions