Когда я вызываю NSLog из C ++, Xcode жалуется, что строка формата, переданная NSLog, не является литеральной строкой.Вот строка кода, которая вызывает предупреждение:
NSLog(CFSTR("Leaking?"));
Я не знаю ни одного способа кодирования литеральной строки NSString в C ++, и я не вижу соответствующего предупреждения, которое можно отключить внастройки проекта.Есть ли способ вызвать NSLog из C ++, не вызывая это сообщение?Я использую Xcode 4.2.1.
Редактировать: Это действительно код C ++.Я обычно избегаю Objective-C ++, придерживаясь либо Objective-C, либо старого C ++, потому что нет официальной документации о том, что работает в Objective-C ++, а что нет.Я нашел только смутные предупреждения о том, что (например) могут быть проблемы с некоторыми частями STL.Я использую шаблоны, STL и другие «продвинутые» функции C ++, поэтому я хочу быть осторожнее.
Правка # 2, решение: я только что понял, что clang поддерживает гораздо больше флагов предупреждений, чемна самом деле документально.(Это должно было быть очевидно из длинного списка предупреждений, которые мне предлагал Xcode.) Я попробовал -Wno-format-nonliteral a la gcc, и теперь Xcode доволен.