Пусть x
- любой член базового набора символов источника. 'x'
и L'x'
являются членами базового набора символов выполнения и набора символов широкого исполнения, соответственно.
Верно ли, что интегральные значения 'x'
и L'x'
должны быть равны? Похоже, что стандарт не требует этого, что имеет смысл. Можно, по-видимому, использовать EBCDIC в качестве узкой кодировки и Unicode как широкую кодировку.
Верно ли, что std::use_facet<std::ctype<wchar_t>>(std::locale()).widen('x')
должно быть равно L'x'
в некоторой (или какой-либо) локали? В этом случае имеет смысл потребовать этого, но я не могу найти такое требование и в стандарте. Аналогично, std::use_facet<std::ctype<wchar_t>>(std::locale()).narrow(L'x')
совпадает с 'x'
?
Если вышеуказанное не верно, то какой из этих
std::wcout << L'x';
std::wcout << ct.widen('x');
должен выводить x
? ct
является подходящей фасеткой языка.