On Wednesday, 20 March 2013 at 21:09:03 UTC, Nick Sabalausky
wrote:
There *is* "stdout.rawWrite(...)"
Sure, I saw that in your post. Thanks for the heads up. That'll
be sometimes helpful for when I want to use it later. But still,
rawWrite isn't exactly a replacement for write (just like, as you
noted it's not a replacement for writef and ln varieties). In
particular, it doesn't handle things like ranges as seemlessly as
you'd want. Also, things such as write("my range = ", myRange) or
writeln("This thing is ", myDesc, "!") are more difficult to do
appropriately (though, std.string.format is pretty helpful here)
Furthermore, lockingTextWriter displays the same sort of behavior
and rawWrite doesn't help at all there because the use-case is
completely different for an OutputRange.
That's why the default behavior should be the way that works on
modern systems, as you suggest.