我要感谢罗伯特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