On Saturday, 4 August 2012 at 03:07:21 UTC, Era Scarecrow wrote:
Then doesn't it seem like we're missing a potentially important
piece of the puzzle for mixins and templates? very likely my
modified template will include you including the same variable
twice, but if someone gets lazy then it may not work.
Well I have a working work-around that I need to test further,
however it does the job; Although for other applications it may
fail miserably on, and has very limited application.
template bitfieldsOn(string storeName, T...) {
enum bitfieldsOn = "mixin(bitfieldsOn_b!(\"" ~ storeName ~
"\"," ~ storeName ~ TupleToString!(T) ~ "));";
}
template TupleToString(T...) {
static if (T.length)
enum TupleToString = "," ~ T[0].stringof ~ TupleToString!(T[1
.. $]);
else
enum TupleToString = "";
}
so this makes...
mixin(bitfieldsOn!("bits",
ulong, "back", 32,
ulong, "", 32));
and becomes:
mixin(bitfieldsOn_b!("bits",bits,ulong,"back",32,ulong,"",32));