【问题标题】:Visual Studio build vs intellisense warnings. What is the difference, and why does pragma warning(disable) not remove intellisense warning?Visual Studio 构建与智能感知警告。有什么区别,为什么 pragma warning(disable) 不删除智能感知警告?
【发布时间】:2020-09-01 12:10:53
【问题描述】:

一直在尝试清理项目中的警告。我一直在禁用某些第 3 方包含文件的警告,并且我认为如果我将“错误列表”中的过滤器设置为“仅构建”,我没有收到任何警告,但我仍然看到如果我将过滤器设置为“仅限 IntelliSense”或“Build + Intellisense”,则会出现近 200 个警告。

我不太明白有什么区别,或者如何禁用构建和智能感知的某些警告。例如,我收到警告 C6263: Using _alloca in a loop: this can quick overflow the stack." 在我们使用 T2W 或 A2W 宏的任何地方,即使在我很确定我已禁用的文件中在我们的 stdafx.h 文件中使用这个警告:

#pragma warning(push)
#pragma warning(disable: 6263)
#include <atldlgs.h>
#pragma warning(pop)

我不确定为什么警告是 IntelliSense 警告而不是构建警告(即,我在构建输出中没有看到任何反映我在错误列表窗口中看到的警告的内容),而且我是不确定如何通过编译指示禁用 IntelliSense 警告。

请注意,我并不是要禁用代码分析或 IntelliSense。我正在尝试禁用构建时“错误列表”窗口中显示的一些警告,这些警告似乎来自 IntelliSense。

【问题讨论】:

  • Intellisense 是一个独立的编译器,可在 IDE 中用于曲线和代码分析。它的目标是提出一个快速但有时是错误的建议。
  • 两者都不是,是代码分析警告。从问题中您如何到达那里并不是很明显,也许是this

标签: c++ visual-studio


【解决方案1】:

如果你想禁用Intellisense,你可以在Tools-&gt;Options-&gt;Text Editor-&gt;C/C++-&gt;Advanced-&gt;Disable IntelliSense中设置True

如果您想禁用特定错误,您可以参考 Microsoft Docs 关于warning pragma

语法

#pragma warning(
    warning-specifier : warning-number-list
    [; warning-specifier : warning-number-list ... ] )
#pragma warning( push [ , n ] )
#pragma warning( pop )

另外,关于how To disable all code analysis warnings for included third-party files,你可以参考这个link

将以下代码添加到您的头文件中。

#include <codeanalysis\warnings.h>
#pragma warning( push )
#pragma warning ( disable : ALL_CODE_ANALYSIS_WARNINGS )
#include <third-party include files here>
#pragma warning( pop )

【讨论】:

  • 我并没有尝试禁用所有警告或 IntelliSense。我要做的是清理构建时“错误列表”窗口中显示的内容。现在,我已经清理了大部分“构建”警告,但窗口仍然显示一些 IntelliSense 警告。我不想删除所有 IntelliSense 警告,只删除某些文件的特定警告,我知道我们不需要清理,因为它不是我们的代码。
  • 另外,我知道使用编译指示警告禁用。我在帖子中描述了我们如何使用它。
  • 关于Visual Studio build vs intellisense warnings的文档恐怕不多。因此,很难给出准确的比较信息。
猜你喜欢
  • 1970-01-01
  • 2021-01-07
  • 2016-03-20
  • 2011-08-07
  • 2014-11-02
  • 2014-07-17
  • 2013-12-07
  • 2013-11-23
  • 1970-01-01
相关资源
最近更新 更多