On Friday, 27 July 2012 at 16:47:47 UTC, Artur Skawina wrote:
On 07/27/12 18:11, monarch_dodra wrote:
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"
Exactly the same, there's no difference between C and D
pointers, except for classes.
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?
'ret.payload' is 'S'; 'new Payload' is '*S'...
If you meant 'Payload* payload;', then just the pointer is
copied.
artur
Dang it, yes, I meant:
struct Payload
{}
Payload* payload;
And I want to copy the value pointed by payload. Not the pointer.
I'm kind of confused, because every time I see pointer usage, the
deference operator is omitted?
For example:
--------
struct S
{
void foo(){};
}
S* p = new S();
p.foo();
--------
When and where can/should/shouldn't I dereference?