any news on const/invariant?

Sean Kelly sean at f4.ca
Tue Nov 27 07:17:13 PST 2007


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.


Sean



More information about the Digitalmars-d mailing list