【问题标题】:Is there a way to suppress Intellisense errors when using C++11 features specific to November 2012 CTP?使用特定于 2012 年 11 月 CTP 的 C++11 功能时,有没有办法抑制 Intellisense 错误?
【发布时间】:2013-01-20 17:25:02
【问题描述】:

我的代码编译和运行都很好(到目前为止...),但是,因为Visual Studio's Intellisense doesn't yet support the C++11 features new to the 2012 CTP's compiler:

拥有红色下划线的大量非常好的(尽管是实验性的)代码往往会让我有点失望。有没有办法告诉 Intellisense 忽略特定位置的错误?

有人可以推荐一个已经提供适当的语法突出显示和检查这些新功能的 IDE(特别是委托构造函数、初始化列表和可变参数模板,这些都是让我着迷的东西)?

【问题讨论】:

    标签: c++ visual-c++ c++11 visual-studio-2012 intellisense


    【解决方案1】:

    在 VSCode 中你可以使用

    #ifndef __INTELLISENSE__
        // ... code to ignore - for example ...
        __builtin_avr_delay_cycles(16 * 6 + 8); // converts to asm code
    #endif
    

    它确实使编辑器中的代码部分变暗,这有点烦人,但至少它不会报告错误并且该部分会编译得很好。

    【讨论】:

      【解决方案2】:

      转到:

      工具->选项->文本编辑器->C/C++->高级->智能感知

      并将“禁用错误报告”设置为 true。

      【讨论】:

      • 对固件开发人员绝对有用(例如,使用 AVR 但使用 Visual Studio);-) 非常感谢!
      • 这是禁用 Intellisense 的有用提示,但不能回答实际问题。在试图定义一个艰难的情况时,这个问题本身实际上非常好。
      • 感谢@edwinc!避免让我发疯的重要信息!
      • 这会禁用智能感知误报,但也会禁用编译器报告的正确错误的标记
      【解决方案3】:

      我很确定你不能做到这一点。

      CTP 仅独立更新编译器,而不是 Intellisense。 Intellisense 基于 EDG 的前端,CTP 不会更新(即使不考虑 CTP,Intellisense 和编译器有时也可能因此而产生分歧)。另请参阅this Q&A on SO 以获得澄清。

      当然,您可以完全禁用 Intellisense,但我认为这不是您所要求的。

      【讨论】:

      • 您还可以禁用错误下划线并启用 IntelliSense(用于自动完成等)。
      • @ildjarn:我不知道。请随时编辑我的答案。
      • 有一种方法可以抑制 IntelliSense 错误。对我来说很好。
      • @Jichao:不,它不能。您和 hfrmobile 一样,还没有阅读过这个问题。我会为您重复一遍,这样您就不必浏览以前的 cmets:OP 想要“告诉 Intellisense 忽略 在特定位置的错误”并具有“正确的语法高亮显示和检查这些新功能”,但是没有办法用那个 CTP 做到这一点。感谢您对我的正确答案投反对票。
      • 标题和问题说明了不同的事情。你说的对。当我有机会时,我会投票。但是除非您修改了答案,否则stackoverflow不允许我这样做。
      猜你喜欢
      • 1970-01-01
      • 2013-01-03
      • 2013-01-11
      • 2012-10-25
      • 2016-01-09
      • 1970-01-01
      • 2011-11-17
      • 1970-01-01
      • 2012-12-09
      相关资源
      最近更新 更多