जीसीसी समर्थन -फोर्ट-वेचर जो 4 से दो बाइट्स तक wchar_t स्विच करता है।जीसीसी के साथ wchar_t कितना बड़ा है?
संकलन समय पर wchar_t के आकार का पता लगाने का सबसे अच्छा तरीका क्या है, इसलिए मैं इसे उचित utf-16 या utf-32 प्रकार में सही तरीके से मैप कर सकता हूं? कम से कम, जब तक C++ 0x जारी नहीं होता है और हमें स्थिर utf16_t और utf_32_t टाइपपीफ देता है।
#if ?what_goes_here?
typedef wchar_t Utf32;
typedef unsigned short Utf16;
#else
typedef wchar_t Utf16;
typedef unsigned int Utf32;
#endif
ऐसा मत करो। wchar_t के पास यूनिकोड के साथ कुछ लेना देना नहीं है। यह एक विशिष्ट प्रकार है जो सभी समर्थित स्थानों के सबसे बड़े विस्तारित चरित्र सेट के सभी सदस्यों को पकड़ सकता है। यदि आपका मंच केवल ASCII का समर्थन करता है तो आकार (wchar_t) 1 हो सकता है। इसका मतलब यह भी है कि, उदाहरण के लिए, कि L'mötley crüe 'अनिवार्य रूप से * एक यूनिकोड स्ट्रिंग नहीं है - यह साथ ही साथ लैटिन -1 स्ट्रिंग भी हो सकता है wchar_t। –
यह अब तक की सबसे सार्वभौमिक रूप से अनुपयोगी टिप्पणी है। उस सलाह के आधार पर हमें कभी भी यूटीएफ एन्कोडेड स्ट्रिंग से निपटने का प्रयास नहीं करना चाहिए जब तक कि C++ 0x सार्वभौमिक रूप से रिलीज़ न हो जाए। इस बीच, मुझे प्लेटफार्मों के समर्थन के लिए टाइपिफ के सेट की आवश्यकता है, जो कि आवश्यक डेटा को पकड़ने वाले सबसे उपयुक्त विशिष्ट प्रकारों के लिए मानचित्र है। –