On Wed, 18 May 2011 16:47:47 -0400, Alex_Dovhal <alex_dov...@yahoo.com> wrote:

Nice article, very pleasured to read. One thing that strained my mind - this
exaple:

import std.stdio;

char[] fillAs(char[] buf, size_t num)
{
  if(buf.length < num)
     buf.length = num; // increase buffer length to be able to hold the
A's
  buf[0..num] = 'A';   // assign A to all the elements
  return buf[0..num];  // return the result
}

void main()
{
  char[] str = new char[10];   str[] = 'B';
  fillAs(str, 20);     // buffer must be reallocated
  writeln(str);        // "BBBBBBBBBB"
(1)
  fillAs(str, 12);     // buffer can be extended in place!
  writeln(str);        // "AAAAAAAAAA";
}

Please add in (1) assert(str.capacity == 15);

hm... I think I'll add a comment instead, since I haven't discussed the capacity property yet. People might not get what that means.

Thanks for the suggestion!

-Steve

Reply via email to