Код С++ не удается скомпилировать после обновления XCode 5.0 → 5.1 "Первичное объявление класса не может иметь вложенный спецификатор имен"
У меня это в файле .h:
class Ogre::ManualObject;
Я не знаю, как он туда попал, но он всегда компилируется под несколькими компиляторами - до тех пор, пока XCode5.1 не добавит его в качестве ошибки.
У Apple снова изменился компилятор С++?
Ответ 1
Как предложил Джон, измените class Ogre::ManualObject; на namespace Ogre{ class ManualObject;}. У меня была точно такая же проблема (но с разными объявлениями), также с Ogre и Xcode 5.1. Изменено 3 строки, все сработало.
Ответ 2
Возможно, это никогда не было законным. Это будет зависеть от кода вокруг него (трудно сказать только на основе этой одной строки, не зная ссылочных точек). Смотрите этот поток SO.
По-видимому, вы не единственный, кто испытывает эту проблему после обновления XCode 5.1. См. Эту тему в разделе Scaleform (autodesk.com). Однако я не мог найти ничего связанного в примечаниях к выпуску XCode или LLVM/clang.