Adr*_*ore 6 intellisense visual-studio-2015
Visual Studio 2015 提供了在同一窗口中显示 Intellisense 错误的选项,该窗口还显示常规生成错误。我喜欢它,因为我什至不需要构建来查看我的代码的语法是否正确。
但是,该窗口还显示了一个误报,这似乎与 Intellisense 错误有关。有没有办法抑制特定代码区域或整个文件的智能感知错误?
老问题,我知道,但我刚刚对 Visual Studio 2019 / IntelliSense 提出了类似的抱怨,并找到了解决方案。
我的特定示例是 C++,与可变长度数组的使用有关。Clang 支持/编译它们,我可以通过添加一个-Wno-vla选项 ( Properties -> C/C++ -> Command Line -> Additional Options)来抑制构建警告。
但是,IntelliSense 会忽略“-Wno-vla”,将 VLA 视为错误,而不是警告。因此,代码及其错误列表中的红色波浪线出现了:( 此错误编号 28 在下面很重要)E0028 expression must have a constant value
关键是要记住 IntelliSense 使用不同的编译器前端,因此与您选择的构建编译器和选项相比,可能对什么是“正确的”有不同的想法。前端是从EDG获得许可的,幸运的是,他们在此处记录了它的一些操作,包括命令行选项、编译指示等: C++ 前端 PDF
我不知道如何将他们的命令行选项专门定向到他们的前端,这似乎是从项目中提取其选项,与构建编译器使用的选项相同......并且它对这些选项感到窒息,尤其是那些选项期待一个空格后的参数(例如--diag_suppress 28从来没有工作)。
然而,我可以开始工作的是前端特定的编译指示!所以这需要少量不可移植的代码。具体来说,我将以下内容放入我的顶级(“所有人都包含”)头文件之一中,并且效果很好:
#ifdef __INTELLISENSE__
#pragma diag_suppress 28
#endif
Run Code Online (Sandbox Code Playgroud)
如果没有该__INTELLISENSE__条款,您还可以执行以下操作: #pragma clang diagnostic ignored "-Wunknown-pragmas"
你找到答案了吗?您可以通过在代码中出现错误之前的行中写入以下内容来实现此目的
#pragma warning disable XXXX
Run Code Online (Sandbox Code Playgroud)
其中 XXXX 是不带“CS”的错误代码
或者您可以尝试以下步骤来抑制 Visual C# 或 F# 的特定警告
取自此处https://msdn.microsoft.com/en-us/library/jj715718.aspx
请注意,提到的是警告而不是错误,但对我来说,如果我选择在“错误列表”窗口中显示“抑制的错误”,它们将被列为错误。您可能需要在“错误列表”窗口中启用此列。
| 归档时间: |
|
| 查看次数: |
9680 次 |
| 最近记录: |