I'm still confused about what exactly the C++17 standard says about what is allowed to be read in from and written to standard in and out.
Does a program invoke undefined behavior if it accepts arbitrary binary data via standard in or outputs arbitrary binary data to standard out (even though many programs do that in practice)?