我要感謝羅伯特Crovella指着我在正確的方向。
永久的解決辦法:在Visual Studio中本身解析文件,而不是在編譯期間
#ifndef __INTELLISENSE__
#include <cub/cub.cuh>
// And other troublesome libraries or code-blocks....
#endif
的Visual Studio的__INTELLISENSE__
宏只被定義。因此,上述代碼塊內的任何內容都不會由IntelliSense算法檢查。
解決方法:(我的第一嘗試解決這個問題,可以忽略不計)。
第1步:
在Visual Studio的Error List
窗口的變化選項Build + IntelliSense
到Build Only
步驟#2
在Visual Studio中去:Tools > Options > Text Editor > C/C++ > Advanced
和False
改變Disable Error Reporting
到True
說明:
這將關閉智能感知錯誤檢查功能,並通過擴展將解決我的問題。這部分解決方案將迫使我只依賴編譯器(構建)輸出,但這不是問題。
就像我說過的,這個解決方案更像是一個圍繞的解決方法,在智能感知功能中沒有任何嚴重或關鍵的損失,而不是一個永久修復。 但它工作正常。
缺點:
在我的當前項目
- ,但是也有一些包裝的功能,這些功能往往不被自動完成檢測。
- 此外,如果總錯誤計數達到智能感知限制,智能感知將停止工作。(編輯:「沒有任何嚴重或嚴重的處罰」直接走出了窗戶......)。
Cub使用cuda,cuda與intellisense不兼容,並且一個單獨的頭文件會包含很多代碼,因爲它是一個模板庫。在討論intellisense錯誤以及可能對它們做什麼的SO'cuda'標籤上有各種各樣的問題。或者,您可以讓VS2015不報告這些類型的錯誤。 –
是的,您在閱讀您的初稿並回復後,將其編輯到您的問題中。我從我的第一條評論中刪除了該聲明。 –
@RobertCrovella如何強制VS2015不報告這些錯誤?你想關閉智能感知嗎? – cukier9a7b5