in src/libraries/utf/include/m/utf/encode.h [193:209]
constexpr OutIter encode_utf16(char32_t ch, OutIter it)
{
if ((ch >= 0x110000) || ((ch >= 0xdc00) && (ch <= 0xdfff)))
throw std::runtime_error("invalid character");
if (ch < 0x10000)
{
*it++ = static_cast<WordT>(ch);
}
else
{
*it++ = static_cast<WordT>(((ch - 0x10000) / 0x400) + 0xd800);
*it++ = static_cast<WordT>(((ch - 0x10000) % 0x400) + 0xdc00);
}
return it;
}