On 07/12/2010 07:30 AM, Steven Schveighoffer wrote:
On Mon, 12 Jul 2010 08:12:31 -0400, bearophile
<bearophileh...@lycos.com> wrote:
Steven Schveighoffer:
If people agree that AST macros are superseded by mixins,
String mixins are a hack, just a bit better than C preprocessor
(because they are scoped), they are not a replacement of clean macros.
Interesting statement, can you back it up? :) What can you do with a
macro that you can't do with a mixin?
-Steve
I think the big thing about macros is you don't have to worry about
lexing and parsing.
if <A> is of the form (Assignable, Assignable, ... ),
and <B> of the form (AssignExp, AssignExp, ... )
how do you readily rewrite
mixin("<A> = <B>;");
to
(<A>[0] = <B>[0], <A>[1] = <B>[1], ... )
without a metric shit ton of library support?
With the most bare bones of AST macros (maybe a ctfe function that gets
passed a AST* and returns a AST* or something equivalent), it's pretty
trivial. And you don't need to wrap it in a string literal.