```
import std.stdio;

struct Location {
    int r;
    int c;
}

struct Node {
    this(Location locaction, uint f) {
        this.location = location;
        this.f = f;
    }
    Location location;
    uint f;
}

void main() {
    Node n = Node(Location(1,2), 33);
    writeln("n = ", n);
}

---------------------------------------------------

produces:
n = Node(Location(0, 0), 33)
when I expected
n = Node(Location(1, 2), 33)


So structs are value objects (not reference like classes). So it is passed by value. So a copy of 1 and 2 is made upon entering the constructor this. But aren't these copies then placed into the Node structure n (for the lifetime of n). So that writeln should produce Location(1, 2), 33.

Reply via email to