-Fno-char8_t için MSVC eşdeğeri nedir?


9

C ++ 20'de u8dize değişmezleri char8_ttüre bağlıdır. Kasıtlı olarak artık dönüşmezler char const*:

const char* str = u8"Hall\u00f6chen \u2603"; // no longer valid in C++20

Tabii ki, C ++ 20'ye geçerken nihai hedef tamamen yeni davranışla devam etmektir (yukarıdaki örnekte: türünü değiştirmek str). Ancak, üçüncü taraf kütüphaneler nedeniyle, bu genellikle hemen mümkün değildir.

Tanıtan ve "çürüten" teklifler bunu char8_töngörür ve clang ve gcc'de -fno-char8_teski davranışa geri dönme bayrağı olduğunu belirtir (yine de diğer C ++ 20 özelliklerinin tadını çıkarırken).

2. teklif, Microsoft'un benzer bir bayrağı izleyip ekleyeceği beklentisini ortaya koyuyor, ancak nasıl ayarlanacağını bulamadım (en azından VS 2019, Sürüm 16.4'te).

Peki MSVC eşdeğerinin ne olduğunu bilen -fno-char8_tvar mı?

Yanıtlar:


8

16.1'den beri uygunluk derleyici bayrağı vardır /Zc:char8_t-. Eksi için derleyici bildiren değil ++ 20 C kullanırken burada kullanım uygunluk modu. Aksine, /Zc:char8_tetkinleştirmek için kullanılabilir.


1
Oh, güzel yer. Ben yok diyerek bir cevap yazmak üzereydim :)
Orbit'te Hafiflik Yarışları

1
@LightnessRaceswithMonica Referans eklediğiniz için teşekkürler!
Guillaume Racicot

Bir şey yapmam gerektiğini düşündüm : P
Yörüngedeki Hafiflik Yarışları

Biraz da geliştirdim, çünkü bilmek istediğim bir şey; ben de katkıda bulunmalıyım: P
Acorn
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.