On 28/12/11 1:27 PM, bearophile wrote:
Peter Alexander:

Any time you want to create a string without allocating memory.

char[N] buffer;
// write into buffer
// try to use buffer as string

I have discussed a bit two or three times about this topic. In a post I even did suggest 
the idea of "scoped immutability", that was not appreciated. Generally creating 
immutable data structures is a source of troubles in all languages, and in D it's not a 
much solved problem yet.

In D today you are sometimes able to rewrite that as:

string foo(in int n) pure {
     auto buffer = new char[n];
     // write into buffer
     return buffer;
}
void bar(string s) {}
void main() {
     string s = foo(5);
     bar(s); // use buffer as string
}

Bye,
bearophile

That only works when you allocate memory for the string, which is what I would like to avoid.

Reply via email to