我在 .h 文件中有这个:
class Ogre::ManualObject;
我不知道它是如何到达那里的,但它总是在多个编译器下编译 - 直到突然 XCode5.1 将它作为错误引发。
Apple 是否再次更改了 C++ 编译器?
正如约翰建议的那样,更改class Ogre::ManualObject;
为namespace Ogre{ class ManualObject;}
. 我遇到了完全相同的问题(但声明不同),Ogre 和 Xcode 5.1 也是如此。换了3行,一切正常。
可能这从来都不是合法的。这将取决于它周围的代码(很难说仅仅基于那一行而不知道参考点)。请参阅此SO 线程。
显然,在 XCode 5.1 更新后,您不是唯一遇到此问题的人。请参阅有关Scaleform (autodesk.com)的此线程。但是,我在 XCode 或 LLVM/clang 发行说明中找不到任何相关内容。