这是一个有效的C ++函数吗?

时间:2009-05-18 16:46:03

标签: c++

在我看来,这个函数无效,因为它使用关键字'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挖出重复

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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