Они были описаны в документе WG21 от 2005 , но описание отсутствует в окончательном стандарте. Они задокументированы в ISO / IEC 19769: 2004 ( Расширения для языка программирования C для поддержки новых типов символьных данных ) ( draft ), к которым относится стандарт C ++ 11.
Текст слишком длинный для размещения здесь, но вот подписи:
size_t mbrtoc16(char16_t * pc16, const char * s, size_t n, mbstate_t * ps);
size_t c16rtomb(char * s, char16_t c16, mbstate _t * ps);
size_t mbrtoc32(char32_t * pc32, const char * s, size_t n, mbstate_t * ps);
size_t c32rtomb(char * s, char32_t c32, mbstate_t * ps);
Функции преобразуют между многобайтовыми символами и символами UTF-16 или UTF-32 соответственно, аналогично mbrtowc
. Нет нерецензируемых версий, и, если честно, кому они нужны?