Get the address of an object, within the object itself

Andrew Chapman via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Feb 15 13:42:41 PST 2017


On Wednesday, 15 February 2017 at 21:37:12 UTC, Jonathan M Davis 
wrote:
> On Wednesday, February 15, 2017 13:33:23 Jonathan M Davis via 
> Digitalmars-d- learn wrote:
>> On Wednesday, February 15, 2017 21:27:00 Andrew Chapman via 
>> Digitalmars-d- learn wrote:
>> > Hi all, sorry if this question is silly, but is it possible 
>> > to get the address of an object within the object itself?
>> >
>> > e.g.
>> >
>> > class Node
>> > {
>> >
>> >      this()
>> >      {
>> >
>> >          writeln(&this);  // Doesn't work
>> >
>> >      }
>> >
>> > }
>> >
>> > auto node = new Node();
>> > writeln(&node); // Does work
>>
>> This does _not_ give you the address of the Node object. It 
>> gives you the address of the reference.
>
> IIRC, the only way to get the address of the object itself 
> would be to cast it to void*, but it's not something that I do 
> normally, so I'd have to experiment a bit to be sure.
>
> - Jonathan M Davis

Thanks Jonathan.  Good point about the reference address.  I can 
work around this quite easily, but I was curious.  I will try the 
void* cast and see what happens.

Cheers.


More information about the Digitalmars-d-learn mailing list