On Friday, 10 June 2016 at 22:38:29 UTC, Dechcaudron wrote:
I have the following code:

private string getVariableSignalWrappersName(VarType)()
{
        return VarType.stringof ~ "SignalWrappers";
}

void addVariableListener(VarType)(int variableIndex, void delegate(int, VarType))
{
alias typeSignalWrappers = mixin(getVariableSignalWrappersName!VarType);
}

On compilation, the following error is issued:
Error: basic type expected, not mixin

Why should it be like that? I believe the compiler should not impose restrictions on what mixins can or cannot do :/

I'm no expert, but this looks like a grammar issue more than anything else. You can work around it by moving the alias declaration into the mixin.

mixin("alias typeSignalWrappers = " ~ getVariableSignalWrappersName!VarType ~ ";");

Reply via email to