Visual C intellisense比编译器“更聪明”

我有以下场景.

我有一个类派生的基类.然而,一切看起来都不错,每当我将鼠标光标悬停在基类的继承成员上时,intellisense就会很好地显示它,EG BaseClass :: SomeMember.但是,当我尝试编译时,编译器会显示各种错误(它们是关于intellisense报告的变量和成员函数).编译器说“它们不是有效的标识符”,它们不属于“全局命名空间”.有谁知道为什么会这样?

解决方法:

如果这是VC2010,那么是的,从某种意义上说,智能感知更聪明.
他们转而使用EDG的IntelliSense编译器前端,这是一个比微软自己的编译器更严格,更符合标准的编译器.因此,有些情况下IntelliSense和“真正的”编译器不同意.

有时IntelliSense是错误的,因为它没有完整的图片(它在不同的上下文中运行,并且一次只处理代码的小片段),有时Intellisense是正确的,编译器是错误的(就C标准而言)合规),因为EDG的前端在这方面更好.

上一篇:C#-自定义Intellisense自动完成


下一篇:为VSCode / Monaco Intellisence添加JavaScript类型提示