सी ++ मानक के अनुसार (§30.7.5.2.4 सी ++ 17 मसौदा (N4659) का), out << ch
एक चौड़ा आपरेशन ch
पर प्रदर्शन नहीं करेगा, यदि ch
एक char
और out
एक std::ostream
है।सी ++ std :: ctype <char> :: widen() की भूमिका क्या है?
इस मतलब यह है कि std::ctype<char>::widen()
(अर्थात, char
->char
) मानक द्वारा गारंटीकृत है बुनियादी स्रोत चरित्र में सभी पात्रों के लिए एक पहचान समारोह (widen(ch) == ch
) सेट होने के लिए?
यदि हां, तो क्या यह बदले में यह इंगित करता है कि सभी स्थानीय लोगों को मानक स्रोत चरित्र सेट से वर्णों के समान गैर-चौड़े (या बहु-बाइट) एन्कोडिंग का उपयोग करने के लिए मानक द्वारा आवश्यक है?
यदि नहीं, तो यह out << 'x'
जैसा लगता है, साहित्यिक के लिए वर्ण एन्कोडिंग की एक विशेष पसंद के साथ, शायद सभी स्थानीय लोगों में काम नहीं कर सकता है, भले ही यह कुछ में काम करता हो। यही है, चरित्र अक्षरक एन्कोडिंग का कोई विकल्प नहीं हो सकता है, जैसे कि out << 'x'
एक साथ सभी स्थानों में काम करता है।