http://d.puremagic.com/issues/show_bug.cgi?id=10724
--- Comment #3 from yebblies <[email protected]> 2013-07-28 20:52:45 EST --- (In reply to comment #2) > Implicit conversions introduce a bit of dangers in a language. They should be > minimized. > > Instead of this: > const(char)* s = "abc"[0..$-1]; > > What about this? > const(char)* s = "abc"[0..$-1].ptr; The conversion is only safe because the string literal is null-terminated. Explicitly adding .ptr bypasses that, making it unsafe to rely on this. Currently `"abc"[0..$-1]` gets const-folded to (essentially) `cast(string)"ab"`, and not for any reason I can see. It should be just plain "ab", which can convert to a const cstring. The only downside I can see is potential confusion that the above works, but this doesn't: string str = "abc"[0..$-1]; const(char)* s = str; But this is already present with plain string literals, as well as concatenation and probably others. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
