代码之家  ›  专栏  ›  技术社区  ›  Arve

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

  •  2
  • Arve  · 技术社区  · 15 年前

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

    class C 
    {
         static public  int x;
    };
    

    它在VisualStudio 2008 C++和VisualStudio 2010 C++(beta 2)中编译OK。但是静态成员x最终不是公共的。

    在Visual Studio 2010 Beta 2中,这种体验更为陌生。IntelliSense报告错误“需要标识符”,但编译器没有。Visual Studio 2008不提供任何错误。

    所以问题是:

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

    3 回复  |  直到 15 年前
        1
  •  6
  •   Pavel Radzivilovsky    15 年前

    这不是合法的C++。这是一个合法的C,所以这就是为什么艾德女士退出的原因。

    对的:

    public: static int x;

        2
  •  4
  •   Stefan    15 年前

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

    变量声明中不允许使用“public”。 但是,您看到的是编译器“工作”,因为它也编译为cli(.net code),在那里它是允许的和合法的。

        3
  •  2
  •   Loki Astari    15 年前

    不,它不是合法的C++

    这可能是合法的C(但你需要和C人核实一下)。