On 05/06/14 16:45, via Digitalmars-d-learn wrote: > On Tuesday, 6 May 2014 at 14:25:01 UTC, Artur Skawina via Digitalmars-d-learn > wrote: >> I'm not sure why you'd want to wrap the .offsetof expression in >> a template, but it can easily be done like this: >> >> enum offsetOf(alias A, string S) = mixin("A."~S~".offsetof"); > > Great, that's even shorter. > > Somehow I was fixated on converting the symbol to a string first, but of > course the name is directly available in the mixin: > > enum offsetof(alias typenfield) = mixin("typenfield.offsetof");
I didn't realize that worked, but it does. So... enum offsetOf(alias A) = A.offsetof; But I have no idea why anybody would want to wrap this trivial expression like that. And, I have no idea if the, hmm, /unconventional/ D offsetof semantics are in the bugzilla. It's not really a "bug", but a design mistake... artur