Trong C ++, 20 u8
chuỗi ký tự được dựa trên char8_t
loại. Họ cố tình không chuyển đổi sang char const*
nữa:
const char* str = u8"Hall\u00f6chen \u2603"; // no longer valid in C++20
Tất nhiên, mục tiêu cuối cùng khi chuyển sang C ++ 20 là hoàn toàn phù hợp với hành vi mới (trong ví dụ trên: thay đổi loại str
). Tuy nhiên, vì các thư viện của bên thứ 3, điều này thường không thể thực hiện được ngay lập tức.
Các đề xuất giới thiệu và "khắc phục" char8_t
dự đoán điều đó và đề cập rằng trong clang và gcc có -fno-char8_t
cờ để chuyển về hành vi cũ (trong khi vẫn có thể thưởng thức các tính năng khác của C ++ 20).
Đề xuất thứ 2 đặt ra kỳ vọng rằng Microsoft sẽ theo dõi và thêm một cờ tương tự, nhưng tôi không thể tìm cách thiết lập nó (ít nhất là trong VS 2019, Phiên bản 16.4).
Vậy có ai biết MSVC tương đương với -fno-char8_t
cái gì không?