[fpc-devel] Macro Processing

Joerg Schuelke joerg.schuelke at gmx.de
Fri May 13 22:44:43 CEST 2011

Am Fri, 13 May 2011 20:27:30 +0200
schrieb Florian Klämpfl <florian at freepascal.org>:

> >> The same effect can be achieved by an invocation like
> >>    dp(x,[y,z]);
> >> just as in Format().  
> > 
> > I think only in this special case, because of the ellipsis in that
> > array of const, which is build-in.
> > What if you do some other processing, for example something with
> > lists of names or sets, something where in pascal no ellipsis is
> > allowed?  
> Of course not, but what's the use case of this general example?

Hans-Peter Diettrich wrote this to show that the ellipsis in macro
processing maybe not needed. Whereas I think that this is true only
under special circumstances (array of const; sets).

The need of an example to show that it is sometimes usefull not to force
explicit macro expansion. That was an other question. I do not see the
need for that.

> >> >> A general decision is required: do we *want* explicit or
> >> >> implicit macro expansion?

This because he would prefer not to force en explicit expansion by
{$I macname(macparamlist)}, he would rather use the simpler
macname(macparamlist), which leads to implizit expansion.
But however, I see the restriction of doing it explicit, but I have no
idea, where it may come to play.
Thats why the request for an example.

This has nothing to do with the
> >>    dp(x,[y,z]); 
example which is of course some kind of debugging macro.


More information about the fpc-devel mailing list