[英]error C2893: Failed to specialize function template 'unknown-type std::less<void>::operator ()(_Ty1 &&,_Ty2 &&) const'
[英]std::pair<_Ty1,_Ty2>::pair<_Ty1,_Ty2>& Cannot convert parameter
我是std::map
新手,最近才開始使用它。
我正面臨着其中一個映射的編譯問題。
我有一個自定義結構,我正在嘗試使用該結構類型的對象創建CString
的映射。
不幸的是,我面臨着一些問題
Error 3 error C2664: 'std::pair<_Ty1,_Ty2>::pair(const std::pair<_Ty1,_Ty2> &)' : cannot convert parameter 1 from 'ItemInfo *' to 'const std::pair<_Ty1,_Ty2> &'
ItemInfo
是我正在嘗試使用CString
定義映射的結構。
這是我定義映射的方式..
struct ItemInfo
{<some code>}
class XXXX
{
std::map<CString, ItemInfo> myMap;
}
我不確定如何解決這個問題,或者我應該關注什么。
如果有人能告訴我這個錯誤是什么,以及我如何解決它,我們將不勝感激,謝謝。
編輯
好的 - 我搜索了很多,但仍然無法在insert()
函數中看到錯誤。 這是我使用的:
mAlarmListMpa.insert(tempIterator /*the iterator over the map */, std::pair<CString, ItemInfo>(tagname , info));
編輯來自輸出的更多信息:
`
c:\\ program files(x86)\\ microsoft visual studio 10.0 \\ vc \\ include \\ xmemory(208):錯誤C2664:'std :: pair <_Ty1,_Ty2> :: pair(const std :: pair <_Ty1,_Ty2> &)':不能將參數1從'ItemInfo'轉換為'const std :: pair <_Ty1,_Ty2>&'1> 1> [1> _Ty1 = const CString,1> _Ty2 = ItemInfo 1>] 1>原因:無法從'ItemInfo'轉換為'const std :: pair <_Ty1,_Ty2>'1> 1> [1> _Ty1 = const CString,1> _Ty2 = ItemInfo 1>] 1>沒有用戶定義轉換運算符可用於執行此轉換,或運算符不能被稱為`
你沒有向我們展示的一些代碼是試圖傳遞指向ItemInfo
的指針,它應該傳遞一個鍵值對,大概是std::pair<CString, ItemInfo>
。 完整的錯誤消息應該顯示哪行代碼正在執行該操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.