On Monday, 21 December 2015 at 06:00:45 UTC, Shriramana Sharma
wrote:
I suppose what you mean is, the onus of guaranteeing that
const(char)* refers to a null-terminated string is upon the
person calling the to! function? Yes I understand, and Phobos
documentation does say that using a pointer for input makes
this "@system". Wouldn't it be better to just reject pointer as
input and force people to use fromStringz?
It could also simply have done the same as format("%p", p). The
problem isn't that to!string is too accepting, but that it makes
an unsafe assumption with an inconspicuous, generic interface.
I see that "%s".format(str) where str is a const(char)* just
prints the pointer value in hex. So perhaps one should say that
std.format just treats it like any other pointer (and not
specifically that it treats it as a pointer to a single char)?
Indeed.