On Friday, 16 March 2012 at 02:31:47 UTC, Xinok wrote:
On Friday, 16 March 2012 at 02:18:27 UTC, Kevin wrote:
This is in no way D specific but say you have two constant
strings.
const char[] a = "1234567890";
// and
const char[] b = "67890";
You could lay out the memory inside of one another. IE: if
a.ptr = 1 then b.ptr = 6. I'm not sure if this has been done
and I don't think it would apply very often but it would be
kinda cool.
I thought of this because I wanted to pre-generate
hex-representations of some numbers I realized I could use
half the memory if I nested them. (At least I think it would
be half).
Kevin.
I'm pretty sure this is called string pooling.
My understanding is that string pooling just shares whole strings
rather than combining suffixes.
e.g.
const char[] a = "fubar";
const char[] b = "fubar"; // shared
const char[] c = "bar"; // not shared at all
Combining suffixes is obviously possible, but I'm not sure that
string pooling implies suffix pooling.