ใน C ++ 20 u8
ตัวอักษรสตริงจะขึ้นอยู่กับchar8_t
ประเภท พวกเขาจงใจไม่แปลงเป็นchar const*
อีกต่อไป:
const char* str = u8"Hall\u00f6chen \u2603"; // no longer valid in C++20
แน่นอนว่าเป้าหมายสูงสุดเมื่อย้ายไปยัง C ++ 20 คือไปกับพฤติกรรมใหม่ทั้งหมด (ในตัวอย่างด้านบน: เปลี่ยนประเภทของstr
) อย่างไรก็ตามเนื่องจากห้องสมุดของบุคคลที่สามจึงไม่สามารถทำได้ในทันที
ข้อเสนอที่แนะนำและ"แก้ไข" char8_t
คาดการณ์และกล่าวถึงในเสียงดังกราวและ gcc ว่ามีการ-fno-char8_t
เปลี่ยนสถานะกลับเป็นพฤติกรรมเก่า (ในขณะที่ยังคงสามารถเพลิดเพลินกับคุณลักษณะ C ++ 20 อื่น ๆ )
ข้อเสนอที่ 2 ตั้งค่าความคาดหวังที่ Microsoft จะติดตามและเพิ่มการตั้งค่าสถานะที่คล้ายกัน แต่ฉันไม่สามารถค้นหาวิธีการตั้งค่าได้ (อย่างน้อยใน VS 2019 เวอร์ชัน 16.4)
ดังนั้นใครจะรู้ว่าสิ่งที่เทียบเท่า MSVC สำหรับ-fno-char8_t
คืออะไร?