根据C++标准(§30.7.5.2.4C++ 17草案(N4659)的),out << ch
不会在ch
执行加宽操作中,如果ch
是char
和out
是std::ostream
。C++ std :: ctype的作用是什么<char> :: widen()?
这是否意味着std::ctype<char>::widen()
(即,char
- >char
)由标准保证是在基本的源字中的所有字符的标识功能(widen(ch) == ch
)设置?
如果是这样,这反过来是否意味着标准要求所有区域设置使用基本源字符集中相同的非宽(或多字节)字符编码?
如果不是,看起来像out << 'x'
,对文字的字符编码的特定选择,可能无法在所有语言环境中工作,即使它在某些情况下工作。也就是说,可能不会选择字符文字编码,因此out << 'x'
可以在所有语言环境中同时运行。