What part of the C++ IO streams does the \r
to \r\n
conversion? Is it the stream_buf
itself or is it part of the internal to external encoding conversion by codecvt
facet?
UPDATE 1
You all say that it is done in streambuf/filebuf. Ok. But how does this arrangement deal with, e.g., external encodings like UTF-16? Then it seems that the file has to be opened with ios::binary
flag which disables the translation.