Currently, if you want to store a long getter into a variable without copying it (because it may be a big struct), your only way is to store it as a pointer:

----
struct Matrix {
    float[16] values= [
        1, 0, 0, 0,
        0, 1, 0, 0,
        0, 0, 1, 0,
        0, 0, 0, 1
    ];
}

struct Test {
private:
    Matrix _matrix;

public:
ref const(Matrix) getCurrentModelViewMatrix() const pure nothrow {
        return _matrix;
    }
}

void main() {
    Test t;

const(Matrix)* m = &t.getCurrentModelViewMatrix(); // currently
}
----

But IMO it would be a lot nicer if I could store the reference like this:
----
ref const(Matrix) m = t.getCurrentModelViewMatrix(); // nicer
----

[Of course the name is exaggerated for the purpose of demonstration.]

May this be worth of an enhancement request? Or was this already rejected?
And, no, I want no mutable references such as C++.

Reply via email to