vs2008 編譯專案報錯 C2784
阿新 • • 發佈:2018-12-16
1. 編譯環境
vs2008 + win10
2. 現象和編譯錯誤
【error C2784: 'bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)' : could not deduce template argument for 'const std::_Tree<_Traits> &' from 'const t_extDictBuilder::t_scdFileInfo' C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\functional 】<注:博主的錯誤貼出來的了,你的可能不是這樣的哦!
3. 解決思路
3.1 msdn 查詢對應的錯誤解決,but msdn給出的解決 C2784的答案實在讓人哭笑不得,stackover上也有相關的答案,比如 string.h 變成 string標頭檔案包含等,都不是我所遇到的問題。
3.2 從error 入手,定位到 const t_extDictBuilder::t_scdFileInfo 是無法推斷出模板引數,不妨試著把這段程式碼放到其他環境中編譯看下,(強調下是博主自己的當前環境),我將無法推斷模板引數的部分程式碼放到 vs2017下新舊工程編譯,方向是ok的,所以推斷出是 vs2008 環境的問題;
3.2 查資料發現 vs2008 有一個補丁包是 sp1 ,這個補丁包中微軟更新了一些東西,就試著去安裝了這個補丁包,然後error C2784 解決。【問題情況僅限博主的情況,可能你會遇到其他錯誤導致 c2784】