Passing dynamic arrays
Daniel Gibson
metalcaedes at gmail.com
Mon Nov 8 10:48:27 PST 2010
Daniel Gibson schrieb:
> Walter Bright schrieb:
>> Daniel Gibson wrote:
>>> BTW: What were the reasons to pass static arrays by value in D2
>>> (while in D1 they're passed by reference)?
>>
>> It makes things like vectors (i.e. float[3]) natural to manipulate. It
>> also segues nicely into hopeful future support for the CPU's vector
>> instructions.
>
> Why can't that be done when the static arrays are passed by reference?
Ah I guess you mean something like "alias float[3] vec3", so one may expect vec3
to behave like a value type (like when you define it in a struct) so it's passed
by value.
That does make sense, even though I'm not sure what's more important:
consistency between different kinds of arrays or expectations towards typed
defined from static arrays. ;-)
I still don't get the part with the CPU's vector instructions though. I don't
have any assembly knowledge an no experience with directly using CPU's vector
instructions, but the example of a C function wrapping SSE instructions from the
wikipedia article[1], which multiplies two arrays of floats, loads the arrays by
reference and even stores the result in one of them.
More information about the Digitalmars-d
mailing list