https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79511
--- Comment #5 from ww898 <mikhail at pilin dot name> --- The question about std::little_endian is still alive... MSVC 2013/2015/2017, Clang 3.4/3.8 work on little endian computers x86/x86_64 and have little endian by default. http://en.cppreference.com/w/cpp/locale/codecvt_mode says that "assume the input is in little-endian byte order (applies to UTF-16 input only, the default is big-endian)". May I wrong, but it says about input. My example produce the UTF-16 output. Could you please comment that?