Need help with movement from C to D

Mengu via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu May 8 01:37:47 PDT 2014


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?


More information about the Digitalmars-d-learn mailing list