我正在将VC ++ 7代码库移植到VC ++ 9。令人惊讶的是,Visual Studio 2008将 internal 作为C ++代码中的关键字突出显示,但看起来并没有真正被视为这样。
这是什么 - VS中的一个错误,一个我还没有找到的环境设置,或者是一个迹象表明我将不再允许在即将推出的版本中使用 internal 作为常规标识符?在这种情况下,我最好的举动是什么?
答案 0 :(得分:7)
我不确定,但我认为内部说明符可以在C ++ / CLI项目中使用。因此,由于非C ++ / CLI项目和C ++ / CLI项目之间只有一个项目设置不同,因此可能因为这个原因而突出显示它。
[编辑]刚刚检查过,内部 IS 是C ++ / CLI中的关键字,并生成与C#项目生成的IL类似的IL。所以,我原来的想法似乎是对的。它似乎是来自Microsoft的所有C ++ 的一个解析器。
答案 1 :(得分:5)
请忽略它。 “问题”只是并非Visual Studio的所有部分都能正确区分C ++和C ++ / CLI。因此,即使在普通的原生C ++中,某些C ++ / CLI关键字也会突出显示。 (array
是另一个)。
这只影响语法高亮,而不影响实际的编译器。
因此,避免这些话的唯一理由是:1)发现错误的语法突出显示太烦人,或者2)计划将应用程序移植到C ++ / CLI。
答案 2 :(得分:3)
问题是用于突出显示的解析器不是真正的C ++解析器之一。 “其中之一”,因为VC ++,C ++ / Za和C ++ / CLI是具有不同解析器的三种方言。 VS漂亮的打印机使用一个并不总是正确的通用解析器。例如。它有一组关键字,所以它总是假定“内部”是一个关键字。