Hi there,
every time I want to use output-ranges again they seem to be broken in a different way (e.g. value/reference semantics). This time it is char types and encoding.

How do I make formattedWrite work with a char buffer? I tried the following code and it fails with a *static assert*; it is itentionally disabled. I suspects it is again something about autodecoding but in this case I don't understand it.

https://dpaste.dzfl.pl/c68b3e3529f6

```
import std.format, std.stdio;

void main() {
        char[20] buffer;
        formattedWrite(buffer[], "Long string %s\n", "more more more");
        write(buffer);
}
```

Compilation output:

/opt/compilers/dmd2/include/std/range/primitives.d(351): Error: static assert "Cannot put a char into a char[]." /opt/compilers/dmd2/include/std/format.d(2647): instantiated from here: put!(char[], char) /opt/compilers/dmd2/include/std/format.d(2297): instantiated from here: formatRange!(char[], string, char) /opt/compilers/dmd2/include/std/format.d(3778): instantiated from here: formatValue!(char[], string, char) /opt/compilers/dmd2/include/std/format.d(460): instantiated from here: formatGeneric!(char[], string, char) /d446/f470.d(5): instantiated from here: formattedWrite!(char[], char, string)

Reply via email to