toStringz or not toStringz
Regan Heath
regan at netmail.co.nz
Fri Jul 8 02:26:02 PDT 2011
Sorry if this has been asked/answered before but I've been out of the loop
for a while..
I was just thinking about the recent discussion on renaming toStringz and
I wondered why we need to explicitly call it at all. Why can't we have
the compiler call it automatically whenever we pass a string, or char[] to
an extern "C" function, where the parameter is defined as char*?
I believe some extern "C" functions are defined as taking ubyte* or byte*
instead of char*, but in those cases I believe they are 'buffers' and have
a supplied length as well, meaning there is no need for the trailing \0 in
any case.
I am probably missing something obvious, but it seems like it might work.
Side note.. It bothers me a little that 'char' means utf-8 codepoint in D,
and means unsigned byte in extern "C" definitions, but I can live with
that.
--
Using Opera's revolutionary email client: http://www.opera.com/mail/
More information about the Digitalmars-d
mailing list