On Saturday, 4 August 2012 at 10:08:34 UTC, Era Scarecrow wrote:
---
mixin template BitfieldsOn(alias target, <…>) if
(isIntegral!(typeof(target))) {
mixin({
string code;
// Generate code using "target" as identifier.
return code;
}());
}
mixin BitfieldsOn!(foo, <…>);
I really don't see how that is an improvement.
It's a sketch of an implementation for your template which
actually works with foo being passed only as an alias parameter.
It's not a string mixin, but I tend to avoid exposing string
mixins to user code as much as possible anyway.
I'm not sure what you mean with »[…] the only acceptable input
is a string; Since strings won't hold the type information...«
– the input to BitfieldsOn is _not_ a string, it is an alias.
The trick is that you can refer to it as »target« inside the
mixin template, so the problem of obtaining the »real name« of
something doesn't even arise.
David