Implicit conversion of concatenation result to immutable
Ali Çehreli
acehreli at yahoo.com
Thu Apr 1 22:07:09 UTC 2021
On 4/1/21 2:59 PM, H. S. Teoh wrote:
> the result of concatenating two
> const(char)[] must be const(char)[], since you don't know if one of them
> may have mutable aliases somewhere else. So the result must likewise be
> const(char)[].
>
> One may argue that appending in general will reallocate, and once
> reallocated it will be unique, and there safe to implicitly convert to
> immutable. However, in general we cannot guarantee this
Yes, that's tricky for append because one of many slices does own the
potential bytes after the array and will append elements in there.
However, concatenation always makes a new array, right? I think the
result can be char[] in that case.
Ali
More information about the Digitalmars-d
mailing list