New syntax for string mixins

Nick Sabalausky a at a.a
Tue Dec 14 10:13:47 PST 2010


"Graham St Jack" <Graham.StJack at internode.on.net> wrote in message 
news:ie76ig$b2v$1 at digitalmars.com...
>
> What you are suggesting here seems to be a way to dramatically reduce the 
> complexity of code that generates source-code and mixes it in. I think 
> something like that is needed before this mind-bogglingly powerful feature 
> of D can realise its potential.
>

I think a decent string-template library could probably come very close to 
the proposal without needing any language changes at all:

string get_set(T, string name)()
{
     return
     q{
         @type _ at name;

         @type @name ()
         {
             return _ at name;
         }

         @type @name (@type @name)
         {
             return _ at name = @name;
         }
     }.replace( ["@type": T.stringof, "@name": name] );
}

class Foo
{
     mixin(get_set!(int, "bar")());
}

There are definitely some things about the proposal that are better than 
with this, but I just wanted to point out that the value of the proposal 
should probably be evaluated against something roughly like the above rather 
than something that does a bunch of procedural string splicing.




More information about the Digitalmars-d mailing list