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