Visual Studio 2010 - C++ 编译时 IntelliSense 错误

Visual Studio 2010 - C++ Compile time IntelliSense errors

有时当我编译 C++ 项目时,构建成功会显示 "Build Succeeded"。但是,如果您单击错误列表,它可能会显示一些错误,例如 "IntelliSense: incomplete type is not allowed"。 我的问题是 "IntelliSense" 错误是什么,我应该担心输出可执行文件吗?

智能感知错误不一定是真正的编译器错误。请记住,Intellisense 是一个单独的部分编译器,旨在提高速度而不是准确性。它会部分编译您的代码以帮助生成 IDE 补全,并且还被 IDE 下划线 Visual Studio IDE.

中可能出现的错误使用

从 VS2010 开始的 IntelliSense 解析器是不同公司的产品。 EDG,Edison Design Group,在 C++ 世界中非常有名,因为它是唯一一个为 C++03 编写了 100% 符合该标准的前端的人。

但它并不是 100% 兼容 MSVC++ 编译器。 VS2010 是训练轮,他们一直在消除不兼容性。有些差异是非常基本的,例如,MSVC++ 使用一种不常见的方式在预处理器中执行宏替换。一个从未在语言标准中指定的细节,Microsoft 很早就承诺做出与其他人不同的选择。很难修复,方式他们的太多客户都依赖于此。

可以从好的方面看待这个问题。你的代码很狡猾,如果你移植到 clang 的 g++ 可能会很麻烦。如果您需要帮助来解决它,那么只需提出一个问题即可。