Comment by WalterBright
17 years ago
Length-embedded strings are little better than the 0-terminated ones. You cannot take a substring without copying.
The "fat pointer" approach has been used in D for nearly 10 years now, and has proven itself to be very effective.
You cannot take a substring without copying.
That's not a bug, it's a feature. Indeed, immutable strings should almost always be the default choice due to security concerns alone. C is optimized for the rare case, modern languages with immutable strings (like C#) are optimized for the common case, this is how it should be.
I think you missed the point. Even with immutable strings, some representations will allow you to take a substring without copying data and some will not. Length-prefixed strings do not.