1. 程式人生 > >vs2008 編譯專案報錯 C2784

vs2008 編譯專案報錯 C2784

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