C ++ में 20 u8
स्ट्रिंग साहित्यिक char8_t
प्रकार पर आधारित हैं । वे जानबूझकर char const*
किसी भी अधिक में परिवर्तित नहीं होते हैं :
const char* str = u8"Hall\u00f6chen \u2603"; // no longer valid in C++20
बेशक, C ++ 20 की ओर पलायन करते समय अंतिम लक्ष्य पूरी तरह से नए व्यवहार के साथ जाना है (ऊपर दिए गए उदाहरण में: प्रकार बदलें str
)। हालांकि, 3 पार्टी पुस्तकालयों के कारण, यह अक्सर तुरंत संभव नहीं है।
प्रस्तावों कि परिचय और "उपाय" char8_t
आशा करते हैं कि और उल्लेख बजना और जीसीसी में है कि वहाँ -fno-char8_t
पुराने व्यवहार पर बदलने में (जबकि अभी भी 20 सुविधाओं ++ अन्य सी आनंद लेने के लिए सक्षम किया जा रहा) झंडा।
दूसरा प्रस्ताव इस उम्मीद को स्थापित करता है कि Microsoft एक समान ध्वज का पालन करेगा और जोड़ेगा, लेकिन मुझे यह पता नहीं चल पाया कि इसे कैसे सेट किया जाए (कम से कम VS 2019, संस्करण 16.4 में)।
तो क्या किसी को पता है कि MSVC क्या -fno-char8_t
है?