有时候编译 C++ 项目时,构建过程会顺利完成并显示“构建成功”。但是,如果你点击错误列表,可能会显示一些错误,比如“IntelliSense: incomplete type is not allowed”。
我的问题是,这个“IntelliSense”错误是什么意思?我需要担心输出可执行文件吗?
Intellisense错误并不一定是真正的编译器错误。请记住,Intellisense是一个独立的部分编译器,旨在追求速度而非准确性。它部分地编译您的代码以帮助生成IDE完成,同时也被IDE用来下划线可能在Visual Studio IDE中出现的错误。
IntelliSense解析器自VS2010以来,是另一家公司的产品。 Edison Design Group(EDG)在C ++领域非常有名,因为他们是唯一编写符合C++03标准的前端的公司。
但它与MSVC ++编译器不是100%兼容的。 VS2010是初学者版,他们一直在消除不兼容性。 例如,MSVC ++使用一种不常见的方法来执行预处理器中的宏替换。 这是语言标准中从未指定过的细节,微软早期做出了与其他人不同的选择。 这很难修复,他们的许多客户都对此产生了依赖。
您可以从这个问题的积极方面看待它。 如果您将来需要转移到g ++或clang,则代码可能存在问题并且可能会引起麻烦。 如果您需要帮助使其正常运行,请提出相关问题。