any news on const/invariant?

Regan Heath regan at netmail.co.nz
Tue Nov 27 01:54:15 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.

Yes, but the underlying memory is reallocated so buffer no longer points 
to valid memory, right?

Regan



More information about the Digitalmars-d mailing list