On 02/05/2016 03:53 PM, Enjoys Math wrote:
SDL_RenderCopy(...) takes two pointers to SDL_Rect's,

I have a property method in another class returning the SDL_Rect
equivalent of a Box (my structure).

Returning by reference or by value?

> Taking ampersand on the left of a
call to the property does not give the address (&).

Does it compile and produce an incorrect result? For it to compile, the returned object must be an lvalue. The following works (not the commented-out part):

import std.stdio;

struct S {
}

S s;

S returnsCopy() {
    return s;
}

ref S returnsRef() {
    return s;
}

void main() {
    // auto addr = &returnsCopy();
    auto addr = &returnsRef();
    writeln(addr);
}

Ali


Reply via email to