Steven Schveighoffer wrote:
> On Mon, 08 Nov 2010 13:35:38 -0500, Daniel Gibson
>> If you pass a dynamic array to a function and chance it's size within
>> the function, you have undefined behaviour - you never know if it will
>> affect the original array (from the calling function) or not.
>
> Not exactly.  If you happen to change its size *and* change the original
> data afterwards, then it's somewhat undefined

Let's also note that appending to the array qualifies as "change its size *and* change the original data afterwards." We cannot be sure whether appending affects the passed-in array.

> (I'd call it confusing,
> since the behavior is perfectly defined, just hard to describe).

I like the term "discretionary sharing semantics" where any slice can leave the sharing contract at their discretion regardless of whether they modified the shared elements so far.

Ali

Reply via email to