Conversión de std :: u32string a / desde std :: string y std :: u16string

Necesito convertir entre UTF-8, UTF-16 y UTF-32 para diferentes API / módulos y, como sé, tengo la opción de usar C ++ 11 estoy viendo los nuevos tipos de cadenas.

Parece que puedo usarstring, u16string yu32string para UTF-8, UTF-16 y UTF-32. Yo tambien encontrecodecvt_utf8 ycodecvt_utf16 que parecen poder hacer una conversión entrechar ochar16_t ychar32_t y lo que parece un nivel superiorwstring_convert pero eso solo parece funcionar con bytes /std::string y no una gran cantidad de documentación.

¿Estoy destinado a usar unwstring_convert de alguna manera para el caso UTF-16 ↔ UTF-32 y UTF-8 ↔ UTF-32? Realmente solo encontré ejemplos para UTF-8 a UTF-16, que ni siquiera estoy seguro de que sean correctos en Linux dondewchar_t normalmente se considera UTF-32 ... ¿O hacer algo más complejo con esas cosas de codecvt directamente?

¿O esto todavía no está realmente en un estado utilizable y debería seguir con mis propias pequeñas rutinas existentes usando enteros sin signo de 8, 16 y 32 bits?

Respuestas a la pregunta(1)

Su respuesta a la pregunta