Why toUTF8 not accept wchar[] as argument?

Seb seb at wilzba.ch
Tue Apr 3 05:20:55 UTC 2018


On Tuesday, 3 April 2018 at 02:46:51 UTC, Domain wrote:
> On Tuesday, 3 April 2018 at 02:31:15 UTC, Uknown wrote:
>> On Tuesday, 3 April 2018 at 02:24:08 UTC, Domain wrote:
>>> wchar[10] buffer;
>>> toUTF8(buffer);
>>>
>>> Error: template `std.utf.toUTF8` cannot deduce function from 
>>> argument types `!()(wchar[10])`, candidates are:
>>> /dlang/dmd/linux/bin64/../../src/phobos/std/utf.d(2713):
>>>  `std.utf.toUTF8(S)(S s) if (isInputRange!S && !isInfinite!S 
>>> && isSomeChar!(ElementEncodingType!S))`
>>>
>>>
>>> I know buffer.idup is OK. But why? That's very inconvenient.
>>
>> What you need to do is slice your buffer. So your call will 
>> become like this:
>>
>> ---
>> toUTF8(buffer[]);
>> ---
>>
>> Now it will work as expected.
>
> I see. Maybe the error message could be improved.

Yep, I opened an enhancement request for you: 
https://issues.dlang.org/show_bug.cgi?id=18711

Better diagnostics and error messages is a key goal in 2018 for 
dmd ;-)


More information about the Digitalmars-d-learn mailing list