Why implicit conversion of string literal to char[] does not works?
Maxim Fomin
maxim at maxim-fomin.ru
Tue Jul 2 13:02:01 PDT 2013
On Tuesday, 2 July 2013 at 09:10:33 UTC, Michal Minich wrote:
> void main ()
> {
> char[] str = "abc";
> // Error: cannot implicitly convert expression ("abc")
> // of type string to char[]
> }
>
> I thought there is no harm in that?
char[] str = ['a', 'b', 'c'];
This will only allocate once without placing data in object file.
This is caused by obsolete Cism moved into modern language to
treat string literals as constant objects (perhaps reasoning was
made in 1980s in memory constraints of those times).
Ideally char[] str = "abc" should be as normal as int[] arr =
[0,1,2] allowing to play with data as much as you wish.
More information about the Digitalmars-d-announce
mailing list