"this" member for structs with methods
simendsjo
simendsjo at gmail.com
Sun Mar 17 07:27:31 PDT 2013
On Sunday, 17 March 2013 at 13:30:29 UTC, Maxim Fomin wrote:
> On Sunday, 17 March 2013 at 12:16:08 UTC, simendsjo wrote:
>> When a struct contains methods, __traits(allMembers reports a
>> member called "this". What is "this"?
>>
>> void main() {
>> struct S { int i; }
>> struct A { int i; void f() {} }
>> pragma(msg, __traits(allMembers, S)); // i
>> pragma(msg, __traits(allMembers, A)); // i, f, this
>> }
>
> This is context pointer. Move outside of function to not to
> have it.
Should it be included? The documentation is a bit sparse:
http://dlang.org/traits.html#allMembers, but every member listed
there are methods in the class or from Object. No hidden this or
vtbl shows in the example.
More information about the Digitalmars-d-learn
mailing list