:
http://clang.llvm.org/docs/LanguageExtensions.html#cxx_unicode_literals
ve burada bir durum sayfasıEn son sürümü, c2v2.org ya da Apple'ın clang 3.0 sürümünden gelen clang, v2.9'un sürümlerini yayımladı, Unicode dize değişmezlerini desteklemiyor. Gövde kaynağının üstünden oluşturulan en son kullanılabilir sürümü, Unicode dizisi değişmezlerini desteklemektedir.
Clang'ın sonraki llvm.org sürümü (yani, 3.0) Unicode dizesi değişmez sözdizimini destekleyecektir, ancak ASCII'yi aşan herhangi bir kodlama kaynağı için destek içermez. Yani, bu llvm.org sürümü ile bile, bu karakterleri kaynağınızda tam anlamıyla yazamayacaksınız ve bunları UTF-16 kodlanmış bir dize değerine dönüştüreceksiniz. Bunun yerine, \ u kaçaklarını kullanmanız gerekir. Yine, gövdenin tepesi UTF-8 kaynak kodunu destekliyor, ancak şu anda test altında olan llvm.org 3.0 sürümü için zamanında devreye girmedi. Bundan sonraki sürüm (6 ay ya da daha sonra) UTF-8 kaynak kodu için daha iyi desteğe sahip olmalıdır (ancak diğer kaynak kodlamaları değil).
Düzenleme: Clang'ın Xcode 4.3 sürümü bu özelliklere sahiptir.
Düzenleme: Standart aslında çok destek gerektirmez
#include <string>
int main() {
std::u16string a = u"鵝"; // UTF-8 source is transformed into UTF-16 literal
std::u32string b = U"滿"; // UTF-8 source is transformed into UTF-32 literal
}
Bu çıkıyor: Ve şimdi LLVM.org 3.1 sürüm tamamen aşağıdakileri destekler
Şimdi tınlamak onlara sahip iostreams kütüphanesinde char16_t ve char32_t için, bu yüzden bundan daha fazla faydalanmak için muhtemelen başka bir string tipine dönmeniz gerekecektir. En azından bu ve daha kullanışlı std :: string arasında dönüştürme yeteneği gereklidir (ayarlanması tam olarak uygun olmasa da ...).
Clang'ın yeni Unicode dizesi değişmezlerini desteklediğinden emin misiniz? –