On Mon, 10 Mar 2014 10:54:50 -0400, H. S. Teoh <hst...@quickfur.ath.cx> wrote:

The only concern I have is the current use of char[] and const(char)[]
as mutable strings, and the current implicit conversion from string to
const(char)[]. We would need similar wrappers for char[] and
const(char)[], and string and mutablestring must be implicitly
convertible to conststring, otherwise a LOT of existing code will break
in a major way.

I agree that is a limitation of the proposal. It's more of a language-wide problem that one cannot make a struct that can be tail-const-ified.

One idea to begin with is to weakly bind to immutable(char)[] using alias this. That way, existing code devolves to current behavior. Then you pick off the primitives you want by defining them in the struct itself.

Plus, these wrappers should also expose the same dchar
range API with .representation giving a way to get at the raw code
units.

It already does that, representation is a public member.

-Steve

Reply via email to