any news on const/invariant?
Walter Bright
newshound1 at digitalmars.com
Tue Nov 27 09:51:00 PST 2007
Sean Kelly wrote:
> Walter Bright wrote:
>> Regan Heath wrote:
>>> void foo(char[] pbuffer)
>>> {
>>> //assume this causes reallocation
>>> //assume there is no more space in place
>>> pbuffer ~= "a";
>>> }
>>>
>>> void main()
>>> {
>>> char[] buffer = "test".dup;
>>> foo(buffer);
>>> buffer[0] = 'a' //crash
>>> }
>>>
>>> Right?
>>
>> No. foo() modifies its copy of pbuffer, which is not the same as buffer.
>
> So we'll have pass by value for arrays? Nifty.
Arrgh! There are two things here, the length/ptr, and the array
contents. The former is passed by value.
More information about the Digitalmars-d
mailing list