Hi,

I'd like to generate several very similar class methods with a mixin template. The mixin template shall take alias parameters, so that different methods can
bind it to different fields. Reduced problem case:

    class A {
        int myField;

        mixin template fieldSetter(alias whatField)
        {
            whatField = newVal;
        }

        int setMyField(in int newVal)
        {
            mixin fieldSetter!myField;
        }
    }

Compiler error message, DMD64 v2.068.2, line 6 is "whatField = newVal;":

    (6): Error: no identifier for declarator whatField
    (6): Error: declaration expected, not '='

I believe I'm following as closely as appropriate what's described at http://dlang.org/template-mixin.html under "Mixins can parameterize symbols
using alias parameters".

Why does it error out on whatField, apparently deeming it to be a type?

Can I get this done with mixin templates? (I'd like to avoid string mixins,
the workaround with them got a little ugly.)

-- Simon

Reply via email to