VS.NET C ++ 2010中智能感知与编译器的区别

时间:2010-02-03 08:12:10

标签: c++ visual-c++ visual-studio-2010

以下是合法的C ++代码:

class C 
{
     static public  int x;
};

它在Visual Studio 2008 C ++和Visual Studio 2010 C ++(beta 2)中编译正常。但静态成员x最终不会公开。

在Visual Studio 2010 beta 2中,体验更加陌生。 Intellisense报告错误“期望标识符”,但编译器没有。 Visual Studio 2008不会出现任何错误。

所以问题是:

这是合法的C ++代码吗? 这是什么意思?

3 个答案:

答案 0 :(得分:6)

这不是合法的C ++。这是一个合法的C#,所以这就是MS IDE错过的原因。

正确:

public: static int x;

答案 1 :(得分:4)

这不是合法的C ++代码。

变量声明中不允许使用'public'。 然而,你所看到的是编译器“工作”,因为它也编译为CLI(.NET代码),并且它是允许的和合法的。

答案 2 :(得分:2)

不,这不是合法的C ++

这可能是合法的C#(但你需要与C#人核实)。