Le 15/05/2012 17:51, Christophe a écrit :
deadalnix , dans le message (digitalmars.D:167404), a écrit :
This looks to me like a bad practice. C string and D string are
different beasts, and we have toStringz .

C string and D string are different, but it's not a bad idea to have
string *literals* that works for both C and D strings, otherwise using
printf will lead to a bug each time the programmer forget the trailing
\0.


Due to slicing, it is already unsafe to pass a D string to C code. The main problem is array casting silently to pointers, making the error easy to do.

Fixing the problem for literal isn't going to solve it at all.

The real solution is toStringz

Reply via email to