我在C++
中使用Intel RealSense 3D SDK
時遇到同樣的問題。我在自己的代碼中有hand.cpp
和hand.h
,當我有using namespace Intel::RealSense;
時,它恰好是一個衝突。爲了解決此問題,我刪除了using namespace Intel::RealSense;
並將PXC添加到與RealSense SDK相關的每個類名稱。 這裏有新的變化的一些例子: #
include "RealSense/SenseManager.h"
#include "RealSense/SampleReader.h"
#include "util_render.h"
#include "Visualizer.h"
#include <iostream>
using namespace std;
//using namespace Intel::RealSense;
PXCSenseManager *pp = PXCSenseManager::CreateInstance();
PXCCapture::Device *device;
PXCCaptureManager *cm;
和這裏的看着什麼舊的代碼,如:
#include "RealSense/SenseManager.h"
#include "RealSense/SampleReader.h"
#include "util_render.h"
#include "Visualizer.h"
#include <iostream>
using namespace std;
using namespace Intel::RealSense;
SenseManager *pp = SenseManager::CreateInstance();
Capture::Device *device;
CaptureManager *cm;
更改後,我沒有收到以下錯誤了。
Severity Code Description Project File Line Suppression State
Error C2872 'Hand': ambiguous symbol OpenARK-SDK c:\openark\Object3D.h
這就是使用'namespace std;'這樣的噩夢的原因。 – 2012-02-28 03:32:45
謝謝你的工作! – Haxify 2012-02-28 03:33:55
與其重命名'max',我會建議不要使用using指令'using namespace std;'正是出於這個原因。 – 2012-02-28 03:57:13