Rename std.string.toStringz?
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Sun Jun 19 06:20:17 PDT 2011
On 6/18/11 5:42 PM, Jonathan M Davis wrote:
> On 2011-06-18 06:35, Andrei Alexandrescu wrote:
>> On 6/18/11 4:59 AM, Jonathan M Davis wrote:
>>> I'll look at renaming toUTF16z to toWStringz to match toStringz (as was
>>> suggested by a couple of people in this thread)
>>
>> That should be a template toUTFz that takes either char*, wchar*, or
>> dchar*.
>
> A good point. Are you arguing that toStringz should be replaced by such a
> construct? Or that it should simply exist in addition to toStringz?
> Also, we _could_ make it so that such a template would take the mutabality of
> the pointer as well (e.g. toUTF!(char*)(str), toUTF!(const(char)*), etc.),
> which would allow it to be used in cases where you actually want a mutable
> string (which toStringz doesn't do).
>
> - Jonathan M Davis
I think that's a good idea, which would address that StackOverflow
problem too.
The way I'd probably suggest we go about it is as a universal
transcoder. Define std.conv.to with strings of any width and
qualification as input and with pointers to characters of any width as
output. It is implied that the conversion entails adding a terminating zero.
string a = "hello";
auto p = to!(wchar*)(a); // change width and qualifier
Andrei
More information about the Digitalmars-d
mailing list