https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70893
--- Comment #7 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Кирилл from comment #5) > It makes no sense, because you can explicitly specify little_endian in the > template parameters, but not big_endian. And the standard says that parameter is ignored for codecvt_utf8 and codecvt_utf8_utf16. But as I said, the spec is a mess. Clang's libc++ gives exactly the same result for your testcase as libstdc++ does, so its authors interpreted the spec the same way I did.