https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119880
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- The C standard says that in a footnote for fwide: "If the orientation of the stream has already been determined, fwide does not change it." We would need to use freopen to reopen stdout so that it becomes unoriented again, but checking the current orientiation with fwide and then reopening if needed would make every operation on std::cout and std::wcout (and std::cerr, std::wcerr, std::clog and std::wclog) considerably more expensive.