Я перенес проект Xcode iOS с Xcode 3.2.6 на 4.2. Теперь я получаю предупреждения, когда пытаюсь инициализировать wchar_t литералом с символом, отличным от ASCII:
wchar_t c1;
if(c1 <= L'я') //That's Cyrillic "ya"
Сообщения следующие:
MyFile.cpp: 148: 28: предупреждение: escape-последовательность символов Unicode слишком длинная для своего типа [2] MyFile.cpp: 148: 28: warning: игнорируются посторонние символы в константе широких символов [2]
И буквальный не работает должным образом - сравнение не выполняется.
Я компилирую с -fshort-wchar, исходный файл находится в UTF-8. Редактор Xcode отлично отображает файл. Он компилировался и работал на GCC (несколько разновидностей, включая Xcode 3), работал на MSVC. Есть ли способ заставить компилятор LLVM распознавать эти литералы? Если нет, могу ли я вернуться к GCC в Xcode 4?
РЕДАКТИРОВАТЬ: Xcode 4.2 на Snow Leopard - длинная история почему.
EDIT2: подтверждено в новом проекте. Расширение файла не имеет значения - такое же поведение в файлах .m. -fshort-wchar тоже не влияет на это. Похоже, мне нужно вернуться в GCC, пока я не смогу перейти на версию Xcode, где это исправлено.