D2 toStringz Return Type
Steven Schveighoffer
schveiguy at yahoo.com
Fri Nov 7 10:25:52 PST 2008
"Andrei Alexandrescu" wrote
> Mike Parker wrote:
>> I'm curious as to why toStringz in D2 returns const(char)* instead of
>> just a plain char*. Considering that the primary use case foe the
>> function is interfacing with C code, it seems rather pointless to return
>> a const(char)*.
>
> We want to leave the opportunity open to not duplicate the actual memory
> underneath the string object. (Right now that opportunity is not
> effected.)
My recommendation -- have 2 functions. One which always copies (and returns
char *), and one which does not.
This at least leaves a safe alternative for people who have headers that
aren't properly constified, and don't want to go through the hassle of
looking it up themselves. Also good for those C functions which actually
require a mutable char *, since D2 strings are mostly invariant.
-Steve
More information about the Digitalmars-d
mailing list