Passing this to void *
Tim Hsu
tim37021 at gmail.com
Wed Nov 22 15:31:36 UTC 2017
On Wednesday, 22 November 2017 at 15:27:27 UTC, Dukc wrote:
> On Wednesday, 22 November 2017 at 15:17:33 UTC, Adam D. Ruppe
> wrote:
>> On Wednesday, 22 November 2017 at 15:07:54 UTC, Stefan Koch
>> wrote:
>>> &this will do.
>>
>> Even if it were an lvalue, that would be the address of a
>> local. You should basically NEVER do that with D classes.
>>
>> Just `cast(void*) this` if you must pass it to such a function.
>
> It's worth noting that you will still be passing different
> addresses to foo(void*) because classes are reference types in
> D (structs are not). In the constructor you're passing the
> address of the class object itself, but in the main function
> you're passing the address of the reference.
It seems in D, reference has its own address, am I right? unlike
c++
More information about the Digitalmars-d-learn
mailing list