copying the targets of pointers

monarch_dodra monarchdodra at gmail.com
Fri Jul 27 09:11:51 PDT 2012


This is going to sound stupid, but how do you have two pointers' 
targets copy each other? since pointers are used like reference 
types, how do you write the C++ equivalent of "*p1 == *p2"

Here is the context of what I'm trying to do:

----
struct S
{
   struct Payload
   {}
   Payload payload;

   @property
   typeof(this) dup()
   {
     typeof(this) ret;
     if(payload)
     {
       ret.payload = new Payload;
       ret.payload = payload; //Copies the payload? The pointer?
     }
     return ret;
   }
}
----

So yeah, that was my question. I'd be tempted to write:
ret.payload.field1 = payload.field1;
ret.payload.field2 = payload.field2;
...

But:
1) It feels hackish and just going around the problem
2) It works for pointer to Struct with fields, but what about 
things like "int*" ?

Oh yeah, also, if you have a better idea for an better (cleaner) 
implementation of a "payload based" "reference type" structs, I'm 
all ears.


More information about the Digitalmars-d-learn mailing list