> Wait, then I'm missing something. Doesn't it return a pointer to the beginning of the converter string?

It returns a pointer to the beginning of the buffer into which the string is converted, not at the begining of the converted string.

```D
        from.toUTFWz(sz);
        auto fromlen = sz.length;
        auto p = to.toUTFWz(sz); // points to 0 terminated from[]
```
Why would `to.toUTFWz(sz)` point to `from[]` :s ???

Also, It makes the un-written assumption that the ouput range S is of type `ScopeBuffer`. IT wouldn't compile with `Appender`, for example.

--------

As I said when I finished reviewing, this is "nit" material, so we don't have to blow it out of proportions here. I'm OK if we keep it that way. I'm just saying that if we want to have a public `toUTFWz` that takes an output range, that design won't fly.