On Fri, 5 Dec 2025, Martin Frb via fpc-devel wrote:
$define/$Ifdef don't just take (name) identifiers. They also take numbers, <strike>and expressions. </strike> Well actually, numbers. {$define 2} {$IFDEF 2} .... {$ENDIF} The below at first looked like expressions too (but as literal text)But like any directive, it parses until it has the directive (in this case the first ident "2" and ignores the rest "+1" as comment.The below is just about the "2": {$define 2+1} {$IFDEF 1+2} not compiled {$ENDIF} {$IFDEF 2+1} foo; {compiled} {$ENDIF} {$IFDEF 2+ 1} foo; {compiled} {$ENDIF} // note the space
Seriously ? The inventive ways by which people try to shoot themselves in the foot never cease to amaze me... They do it with lots of enthusiasm, it seems :-) Michael. _______________________________________________ fpc-devel maillist - [email protected] https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
