¿El estándar C ++ exige una codificación para wchar_t?

Aquí hay algunos extractos de mi copia del borrador del estándar N4140 de 2014

22.5 Facetas de conversión de código estándar [locale.stdcvt]

3 Para cada una de las tres facetas de conversión de códigocodecvt_utf8, codecvt_utf16ycodecvt_utf8_utf16:
(3.1) -Elem es el tipo de caracteres anchos, comowchar_t, char16_tochar32_t.

4 Para la facetacodecvt_utf8:
(4.1) - La faceta se convertirá entre secuencias multibyte UTF-8 y UCS2 o UCS4 (dependiendo del tamaño deElem) dentro del programa.

Una interpretación de estos dos párrafos es quewchar_t debe estar codificado como UCS2 o UCS4. No me gusta mucho porque si es cierto, tenemos una propiedad importante del lenguaje enterrado en lo profundo de una descripción de la biblioteca. He tratado de encontrar una declaración más directa de esta propiedad, pero fue en vano.

Otra interpretación quewchar_t no se requiere que la codificación sea UCS2 o UCS4, y en implementaciones donde no lo es,codecvt_utf8 no funcionará parawchar_t. Tampoco me gusta mucho esta interpretación, porque si es verdad, y tampocochar niwchar_t Las codificaciones nativas son Unicode, no parece haber una forma de convertir de forma portátil entre esas codificaciones nativas y Unicode.

¿Cuál de las dos interpretaciones es verdadera? ¿Hay otro que pasé por alto?

Aclaración No estoy preguntando sobre opiniones generales sobre la idoneidad dewchar_t para desarrollo de software o propiedades dewchar_t uno puede derivar de otro lado. estoy interesadoen estos dos párrafos específicos de la norma. Estoy tratando de entender queestos párrafos específicos implican o no implican.

Aclaracion 2. Si 4.1 dice "La faceta se convertirá entre secuencias multibyte UTF-8 y UCS2 o UCS4o cualquier codificación impuesta en wchar_t por la localización global actual"no habría ningún problema. No lo hace. Dice lo que dice. Parece que si uno usastd::codecvt_utf8<wchar_t>, uno termina con un montón dewchar_t codificado como UCS2 o UCS4, independientemente de la configuración regional global actual. (No hay forma de especificar una configuración regional o una faceta de conversión de caracteres paracodecvt_utf8) Por lo tanto, la pregunta se puede reformular así: ¿el resultado de la conversión se puede usar directamente con la configuración regional global actual (y / o con cualquier configuración regional posible) para la salida,wctype consultas y así sucesivamente? Si no, qué es utilizablepara? (Si la segunda interpretación anterior es correcta, la respuesta parecería ser "nada").

Respuestas a la pregunta(6)

Su respuesta a la pregunta