Encabezado obsoleto reemplazo

Un poco de primer plano: mi tarea requería convertir el archivo XML UTF-8 a UTF-16 (con un encabezado adecuado, por supuesto). Y entonces busqué formas habituales de convertir UTF-8 a UTF-16, y descubrí que uno debería usar plantillas de .

Pero ahora, cuando está en desuso , me pregunto ¿cuál es la nueva forma común de hacer la misma tarea?

(No importa usar Boost en absoluto, pero aparte de eso, prefiero estar lo más cerca posible de la biblioteca estándar).

std::codecvt plantilla std::codecvt de no está en desuso. Para UTF-8 a UTF-16, todavía hay std::codecvt especialización.

Sin embargo, dado que std::wstring_convert y std::wbuffer_convert están en desuso junto con las facetas de conversión estándar, no hay ninguna forma fácil de convertir cadenas utilizando las facetas.

Entonces, como Bolas ya respondió: impleméntelo usted mismo (o puede usar una biblioteca de terceros, como siempre) o siga usando la API obsoleta.

No te preocupes por eso

De acuerdo con la misma fuente de información :

este componente de la biblioteca debe retirarse al Anexo D, al costado, hasta que se estandarice un reemplazo adecuado .

Por lo tanto, puede usarlo hasta que se realice una nueva versión estandarizada y más segura.

La nueva forma es … la escribes tú mismo. O simplemente confíe en la funcionalidad obsoleta. Con suerte, el comité de estándares en realidad no eliminará codecvt hasta que haya un reemplazo en funcionamiento.

Pero en el presente, no hay uno.