Требует ли стандарт C ++ кодирования для wchar_t?

Вот некоторые выдержки из моей копии проекта стандарта N4140 2014 года

22.5 Стандартные аспекты преобразования кода [locale.stdcvt]

3 Для каждого из трех аспектов преобразования кодаcodecvt_utf8, codecvt_utf16, а такжеcodecvt_utf8_utf16:
(3.1) -Elem является типом широких символов, таким какwchar_t, char16_t, или жеchar32_t.

4 Для аспектаcodecvt_utf8:
(4.1) - Фасет должен преобразовывать между многобайтовыми последовательностями UTF-8 и UCS2 или UCS4 (в зависимости от размераElem) в рамках программы.

Одно из толкований этих двух параграфов состоит в том, чтоwchar_t должен быть закодирован как UCS2 или UCS4. Мне это не очень нравится, потому что, если это правда, у нас есть важное свойство языка, глубоко скрытое в описании библиотеки. Я пытался найти более прямое изложение этого свойства, но безрезультатно.

Другая интерпретация, котораяwchar_t кодирование не обязательно должно быть UCS2 или UCS4, и в реализациях, где это не так,codecvt_utf8 не будет работать дляwchar_t, Мне тоже не очень нравится эта интерпретация, потому что, если это правда, и ниchar ниwchar_t нативные кодировки - это Unicode, кажется, нет способа переносить между этими нативными кодировками и Unicode.

Какая из двух интерпретаций верна? Есть еще один, который я упустил из виду?

осветление Я не спрашиваю об общих мнениях о пригодностиwchar_t для разработки программного обеспечения, или свойстваwchar_t можно получить из другого места. Я заинтересованв этих двух конкретных пунктах стандарта. Я пытаюсь понять чтоэти конкретные пункты влечет за собой или не влечет за собой.

Пояснение 2, Если в 4.1 указано «фасет должен преобразовывать между многобайтовыми последовательностями UTF-8 и UCS2 или UCS4или любая другая кодировка, наложенная на wchar_t текущей глобальной локалью«Там не было бы никаких проблем. Это не так. Он говорит, что говорит. Кажется, что если кто-то используетstd::codecvt_utf8<wchar_t>один заканчивается кучейwchar_t&nbsp;кодируется как UCS2 или UCS4, независимо от текущей глобальной локали. (Нет способа указать локаль или какой-либо аспект преобразования символов дляcodecvt_utf8). Таким образом, вопрос можно перефразировать следующим образом: является ли результат преобразования непосредственно используемым с текущей глобальной локалью (и / или с любой возможной локалью) для вывода,wctype&nbsp;запросы и тд? Если нет, то что это можно использоватьза? (Если второе толкование выше верное, ответом будет «ничего»).