【问题标题】:Is this a valid C++ function or not? [duplicate]这是一个有效的 C++ 函数吗? [复制]
【发布时间】:2009-05-18 16:46:02
【问题描述】:

在我看来,这个函数是无效的,因为它使用关键字'default'作为标识符:

int foo()
{
    int default = 42;
    return default;
}

但是,Microsoft C++ 编译器(版本 14.00.50727.762 和 15.00.30729.0)编译代码时不会出现警告或错误(使用最简单的命令行:'cl foo.cpp')。

Dev-C++ 4.9.9.2 在编译函数时确实会产生错误。

这似乎是一个显而易见的问题,我一定忽略了一些东西。

编辑:litb为此问题Default as a variable name挖出重复

【问题讨论】:

  • 这是微软 c++ 编译器中的一个已知错误。还有另一个问题想知道,但我目前无法找到它。
  • 这很有趣。曾经发生在我身上的“汽车”关键字(西班牙语为汽车)
  • 这就是我所说的错误!不能识别保留字的解析器一定很难写!
  • MS C++ 13.10.4035 返回错误,我无法想象为什么 14 和 15 没有。
  • 这似乎是一个有趣的错误情况,值得注意。

标签: c++


【解决方案1】:

MS Visual C++ 6.0 和 g++ 4.4.0 会产生许多错误——它们应该如此。我很难相信 C++ 编译器会接受这个 - 你确定你真的编译了这段代码吗?

【讨论】:

    【解决方案2】:

    默认是reserved word,gcc 4.3.2 不会编译该代码,不确定 MS 编译器在那里播放什么!

    【讨论】:

      【解决方案3】:

      不,default 是保留的 c++ 关键字,这就是它无法编译的原因。

      【讨论】:

      • 他说它是在 MS 编译器中编译的
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-22
      • 2016-03-14
      • 2012-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多