我有一个使用 0.5.0.1 SDK 的项目(VS2012)。SDK 在 OVR 命名空间 (OVR::System) 下包含一个 System 类。在我写的一个类中,我使用 ::System. 这有效,并不是给我带来问题的原因。编译时出现错误 C2872: 'System': ambiguous symbol,有问题的文件是 C:....\Microsoft Visual Studio 12.0\VC\include 中的 typeinfo、xlocale 和 xiosbase。该错误表明“系统”可能是“系统”或 OVR::System。有没有解决的办法?如何在不更改文件内容的情况下获取 typeinfo、xlocale 和 xiosbase 以使用 ::System 而不是 OVR::System(我不想这样做)?
问问题
1203 次
1 回答
1
using namespace OVR;
指令不应该是一个问题,除非你把它写在你的指令#include
之上。
对库头文件的引用应该总是在你自己的代码之前,这样就不会发生这种事情。一个例外是当库文档告诉您定义一个特定的宏来控制库行为时,在这种情况下,库被设计为与您的定义一起使用。
坏的:
using namespace OVR;
#include <typeinfo>
#include <locale>
好的:
#include <typeinfo>
#include <locale>
using namespace OVR;
于 2015-06-06T03:28:43.660 回答