On Wednesday, 18 January 2017 at 01:15:05 UTC, Ali Çehreli wrote:
Not available but it should be possible to parse the produced
code:
import std.bitmanip;
string makeBitFieldPrinter(string fieldImpl) {
return q{
void printBitFields() const {
import std.stdio: writeln;
writeln("Please improve this function by parsing
fieldImpl. :)");
}
};
}
struct S {
enum myFields = bitfields!(int, "a", 24,
byte, "b", 8);
pragma(msg, "This is the mixed-in bit field
code\n---------\n",
myFields, "\n----------");
mixin (myFields);
mixin (makeBitFieldPrinter(myFields));
}
void main() {
const s = S();
s.printBitFields();
}
Of course that would depend on the implementation of
bitfields(), which can change without notice.
Ali
Thanks Ali, I was using bitfields according to documentation, but
now I see that way I can't access the mixin string:
struct S {
mixin(bitfields!(
bool, "f1", 1,
uint, "f2", 4,
uint, "f3", 3)
);
}