O padrão C ++ exige uma codificação para wchar_t?

Aqui estão alguns trechos da minha cópia do rascunho da norma 2014 N4140

22.5 Facetas de conversão de código padrão [locale.stdcvt]

3 Para cada uma das três facetas de conversão de códigocodecvt_utf8, codecvt_utf16ecodecvt_utf8_utf16:
(3.1) -Elem é o tipo de caracteres largos, comowchar_t, char16_touchar32_t.

4 Para a facetacodecvt_utf8:
(4.1) - A faceta deve converter entre sequências multibyte UTF-8 e UCS2 ou UCS4 (dependendo do tamanho daElem) dentro do programa.

Uma interpretação desses dois parágrafos é quewchar_t deve ser codificado como UCS2 ou UCS4. Não gosto muito porque, se for verdade, temos uma propriedade importante da linguagem enterrada profundamente na descrição de uma biblioteca. Tentei encontrar uma declaração mais direta dessa propriedade, mas sem sucesso.

Outra interpretação quewchar_t a codificação não precisa ser UCS2 ou UCS4 e, em implementações onde não é,codecvt_utf8 não vai funcionar parawchar_t. Também não gosto muito dessa interpretação, porque se é verdade, e nemchar nemwchar_t codificações nativas são Unicode, não parece haver uma maneira de converter de maneira portável entre essas codificações nativas e Unicode.

Qual das duas interpretações é verdadeira? Existe outro que eu esqueci?

Esclarecimento Não estou perguntando sobre opiniões gerais sobre a adequação dewchar_t para desenvolvimento de software ou propriedades dewchar_t pode-se derivar de outro lugar. Estou interessadonestes dois parágrafos específicos do padrão. Estou tentando entender o queestes parágrafos específicos implicar ou não implicar.

Esclarecimento 2. Se 4.1 disse "A faceta deve converter entre seqüências multibyte UTF-8 e UCS2 ou UCS4ou qualquer codificação imposta ao wchar_t pelo código do idioma global atual"não haveria problema. Não diz. Diz o que diz. Parece que se alguém usastd::codecvt_utf8<wchar_t>, acaba-se com um monte dewchar_t codificado como UCS2 ou UCS4, independentemente do código do idioma global atual. (Não há como especificar um local ou qualquer faceta de conversão de caracteres paracodecvt_utf8) Portanto, a questão pode ser reformulada da seguinte maneira: o resultado da conversão pode ser usado diretamente com o local global global atual (e / ou com qualquer local possível) para saída,wctype consultas e assim por diante? Caso contrário, o que é utilizávelpara? (Se a segunda interpretação acima estiver correta, a resposta parecerá "nada").

questionAnswers(6)

yourAnswerToTheQuestion