Efficiently passing structs
rsw0x via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sun May 3 19:37:52 PDT 2015
On Monday, 4 May 2015 at 01:58:12 UTC, bitwise wrote:
> If I have a large struct that needs to be passed around, like a
> 4x4 matrix for example, how do I do that efficiently in D?
>
> In std.datetime, "in" is used for most struct parameters, but
> I'm confused by the docs for function parameter storage
> classes[1].
>
> In C++, I would pass a large struct as (const&):
> void foo(const Matrix4x4 &m);
>
> Is "in" in D the same as passing by const& in C++? The
> documentation doesn't say anything about "in" being a
> reference, but it doesn't say that "out" parameters are
> references either, even though it's usage in the example
> clearly shows that it is.
>
> Thanks,
> Bit
>
> http://dlang.org/function.html#parameters
Use the ref storage class. You can use more than one storage
class i.e,
foo(in ref int x)
Unless I misunderstood you.
More information about the Digitalmars-d-learn
mailing list