有没有一种方法在使用2012年11月CTP特定于C++11功能时抑制Intellisense错误?

26

我的代码编译和运行都很好(到目前为止...),然而,由于Visual Studio的Intellisense尚不支持2012 CTP编译器引入的C ++ 11特性

有一些完全正常(虽然是实验性的)代码被标成红色,这让我有点困扰。有没有办法告诉Intellisense忽略特定位置的错误?

有人能推荐一个已经提供这些新功能(具体来说是委托构造函数、初始化列表和可变参数模板,这些是让我着迷的部分)的正确语法突出显示和检查的IDE吗?

3个回答

68

前往:

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

将"禁用错误报告"设置为true。


1
我还编写了一个自动完成此操作的扩展程序 - Chris Kline
非常适用于固件开发人员(例如使用AVR但Visual Studio);-) 非常感谢! - hfrmobile
8
这是一个有用的提示,可以禁用Intellisense,但并不回答实际问题。实际上,这个问题本身非常好,试图定义一个棘手的情况。 - user3259248
谢谢 @edwinc!你提供的信息太棒了,让我不至于疯掉! - ghiboz
2
这将禁用 IntelliSense 的错误提示,但也会禁用编译器报告的正确错误标记。 - vlad_tepesch

13

我非常有信心地说,您无法做到那一点。

CTP仅独立更新编译器,而不更新Intellisense。 Intellisense基于EDG的前端,即使不考虑CTP,由于这个原因,Intellisense和编译器有时也可能存在分歧。有关详细信息,请参见此SO上的问答

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


6
您也可以禁用错误下划线并保持 IntelliSense 启用(以便进行自动完成等操作)。 - ildjarn
那个答案完全是错误的:工具 > 选项 > 文本编辑器 > C/C++ > 高级 > 智能感知。 - hfrmobile
1
有一种方法可以抑制 IntelliSense 错误。这对我来说没问题。 - hfrmobile
3
@Jichao:不行。你和hfrmobile一样,没有读问题。我会重复一遍,这样你就不必浏览之前的评论了:OP想要“告诉Intellisense忽略特定位置的错误”,并且希望“这些新功能得到适当的语法突出显示和检查”,但是使用那个CTP是无法做到的。感谢你给我的正确答案点踩。 - Andy Prowl
1
标题和问题说的不一样。你是对的。我会在有机会的时候点赞。但是除非你的答案被修改,否则stackoverflow不允许我这样做。 - Jichao
显示剩余6条评论

3
在 VSCode 中,您可以使用以下内容:
#ifndef __INTELLISENSE__
    // ... code to ignore - for example ...
    __builtin_avr_delay_cycles(16 * 6 + 8); // converts to asm code
#endif

它确实会使编辑器中的代码部分变暗,有点让人烦恼,但至少它不会报告错误,并且该部分将能够正常编译。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接