void EnumAliases(T[] aliases)
{
import std.stdio, std.traits, std.conv : to;
foreach (a; aliases)
{
string T = typeof(a);
string V = a.to!string();
mixin("alias " ~ V ~ " = " ~ T.stringof ~ "." ~ V ~ ";");
}
}
}
mixin EnumAliases!([SQ.A1, SQ.H8]);
вроде всё правильно написал, но ругается что типы не совпадают Error: mixin square.EnumAliases!([cast(SQ)cast(ubyte)0u, cast(SQ)cast(ubyte)63u]) does not match template declaration EnumAliases(T)(T[] aliases)
Мне кажется что ты не правильно вообще идею сделал. У тебя все миксины будут внутри функции EnumAliases
а это не eponymous pattern? или видимо я неправильно его понимаю
Ну он, только вот тут ничего не меняется. mixin работает на уровне шаблона, функцию он не развернёт
Обсуждают сегодня