如何解決此編譯錯誤?彙編日誌表示調用者和候選人完全一樣,但是有超負荷和模糊性? 代碼:爲什麼在通過列表中作爲參數時出現歧義?
Ctrl.h
namespace CvRcgCtrllr {
bool AssignPidsTo(const list<unsigned int> & pids, CvRcg & rcg);
bool RemovePidsFrom(const list<unsigned int> & pids, CvRcg & rcg);
};
Ctrl.cpp
using namespace CvRcgCtrllr;
30 bool AssignPidsTo(const list<unsigned int> & pids, Rcg & rcg)
31 {
44 return true;
45 }
46
47 bool RemovePidsFrom(const list<unsigned int> & pids, Rcg & rcg)
48 {
49
50 //Rcg default_rcg = GetNewRcg("default");
51 //bool res = AssignPidsTo(pids, default_rcg);
52 return res;
53 }
<!-- -->
CvRcgCtrllr.cpp: In function ‘bool RemovePidsFrom(const std::list<unsigned int, std::allocator<unsigned int> >&, Rcg&)’:
CvRcgCtrllr.cpp:51: error: call of overloaded ‘AssignPidsTo(const std::list<unsigned int, std::allocator<unsigned int> >&, Rcg&)’ is ambiguous
CvRcgCtrllr.cpp:30: note: candidates are: bool AssignPidsTo(const std::list<unsigned int, std::allocator<unsigned int> >&, Rcg&)
CvRcgCtrllr.h:20: note: bool CvRcgCtrllr::AssignPidsTo(const std::list<unsigned int, std::allocator<unsigned int> >&, Rcg&)
我懷疑你沒有顯示足夠的代碼來推理你的錯誤。編譯器消息表明有''AssignPidsTo'函數,然後*另一個*'AssignPidsTo'函數作爲'CvRcgCtrllr'類中的成員。 – 5gon12eder 2014-10-10 23:34:58
CvRcgCtrllr是一個名稱空間,AssignPidsTo是該名稱空間內的一個函數。在將AssignPidsTo更改爲CvRcgCtrllr :: AssignPidsTo後,它表示CvRcgCtrllr :: AssignPidsTo未定義。 – JackChen255 2014-10-10 23:46:33
你應該顯示更多的代碼。嘗試製作可以現在複製的最短代碼樣本。 – ApplePie 2014-10-10 23:48:41