On 11/12/2013 04:47 PM, bearophile wrote:
Charles Hixson:

I had tried "return bytes.cmp(b.bytes);" , but it didn't occur to me that the error meant I should have used a copy? Does this syntax mean that what's being compared is a dynamic array copy of the original static array?

They are not copies, just slices. In case of doubts take a look at the generated assembly.

Bye,
bearophile

My assembly is pretty bad, the last one I was fluent in was i6502...I was never really fluent in m68000. And those were back when I was using an Apple.

OTOH, while slice is a better term for what I meant...generally when one makes a copy of an object, one is only duplicating the pointers to it, and that's what I meant. (Though since the original was a struct, slice is a much better term. Still, on a 64 bit machine the and an 8 byte key, the slice is twice the size of the original. And the only benefit(?) is that if the dup was changed, so would be the original. Which is what the I thought the const at the end of the declaration was supposed to prevent.)

--
Charles Hixson

Reply via email to