Consider:

auto foo(T)(T a) {
        T b;  // Error: cannot access frame pointer of main.X
        b.data[] = 1;
        return b;
}

void main() {
        struct X {
                this(int) {}
                int[4096] data;
        }
        foo(X());       
}

Note the error is because you cannot construct the main.X object without a frame pointer.

You could do `T b = a` here to get a's frame pointer, but it would also copy all of a's data, which is expensive and unnecessary.

Is there a way to only copy a's frame pointer into b?

(Note: this is just an illustrative example, real problem here: https://issues.dlang.org/show_bug.cgi?id=13935)

Reply via email to