On Tuesday, 6 May 2014 at 15:13:41 UTC, Artur Skawina via
Digitalmars-d-learn wrote:
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
just out of curiousity, why an alias is used there?