C++ 为什么VisualStudio2008在C++;密码?
我正在将VC++7代码库移植到VC++9。令人惊讶的是VisualStudio 2008在C++代码中强调了内部作为关键字,但是看起来它并没有真正被处理。C++ 为什么VisualStudio2008在C++;密码?,c++,visual-studio,visual-c++,C++,Visual Studio,Visual C++,我正在将VC++7代码库移植到VC++9。令人惊讶的是VisualStudio 2008在C++代码中强调了内部作为关键字,但是看起来它并没有真正被处理。 这是什么-VS中的一个bug,我还没有找到的一个环境设置,或者是一个标志,表明我将不再被允许在某个即将发布的版本中使用internal作为常规标识符?在这种情况下,我的最佳做法是什么?我不确定,但我认为内部说明符可以在C++/CLI项目中使用。因此,由于非C++/CLI项目和C++/CLI项目之间只有一个项目设置不同,因此,可能是因为这个原因
这是什么-VS中的一个bug,我还没有找到的一个环境设置,或者是一个标志,表明我将不再被允许在某个即将发布的版本中使用internal作为常规标识符?在这种情况下,我的最佳做法是什么?我不确定,但我认为内部说明符可以在C++/CLI项目中使用。因此,由于非C++/CLI项目和C++/CLI项目之间只有一个项目设置不同,因此,可能是因为这个原因而突出显示了它
[编辑]刚刚选中,internal是C++/CLI中的一个关键字,生成的IL与C#项目生成的IL类似。所以,我最初的想法似乎是正确的。它似乎是微软的所有C++语言的一个解析器。 < P>问题是用于高亮显示的解析器不是真正的C++解析器之一。“其中之一”,因为VC++、C++/Za和C++/CLI是三种不同解析器的方言。VS pretty打印机使用的通用解析器并不总是正确的。例如,它只有一组关键字,因此它总是假定“internal”是一个关键字。忽略它即可。“问题”只是Visual Studio的所有部分不能正确区分C++和C++。因此,即使在纯C++中,某些C++ /CLI关键字也会被高亮显示。(
array
是另一个)
这只会影响语法高亮显示,而不会影响实际的编译器
<> P>所以避免这些词的唯一原因是如果你发现1个语法太烦人,或者2)你的应用程序移植到C++ +CLI。我认为它不是“C语言的一个分析器”,但是一些不在C++中的.NET机制是在C++中为.NET引入的,而且有明显的原因,它们的语义与C#相同。