Новый стандарт С++ 11 упоминает заголовок <cuchar>, предположительно по аналогии с C99 <uchar.h>.
Теперь мы знаем, что С++ 11 приносит новые типы символов и литералы, которые специально разработаны для UTF16 и UTF32, но я не думал, что язык будет фактически содержат функции для преобразования (зависящего от системы) узкого многобайтового кодирования в одно из кодировок Unicode. Однако я просто столкнулся с синтаксисом заголовка для <cuchar>, в котором упоминаются функции mbrtoc16/c16rtombr и mbrtoc32/c32rtombr, которые, похоже, делают именно это.
К сожалению, стандарт ничего не говорит об этих функциях, выходящих за рамки синтаксиса заголовка. Где эти функции определены, что они действительно делают и где я могу больше узнать о них? Означает ли это, что теперь можно использовать правильный Unicode полностью со стандартным С++, не требуя каких-либо дополнительных библиотек?