On 12/31/2011 05:19 AM, Walter Bright wrote:
On 12/30/2011 8:02 PM, Timon Gehr wrote:
On 12/31/2011 04:50 AM, Walter Bright wrote:
Because inevitably someone will write:

#define FOO a + FOO

and expect it to work (the correct expansion would be "a + FOO", not a
stack overflow). The C preprocessor works this way, as do makefile
macros, as Ddoc does.

Makes sense, but why is it an issue if expansion is explicit?

enum FOO = q{a + FOO};

mixin(FOO);

Because the expanded text is then rescanned for further macro replacement.


Yes, but in q{a + FOO} there is none.

Reply via email to