这是有效的 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 在编译该函数时确实会生成错误。
这似乎是一个如此明显的问题,我一定忽略了一些东西。
It seems to me that this function would not be valid since it uses the keyword 'default' as an identifier:
int foo()
{
int default = 42;
return default;
}
However, the Microsoft C++ compiler (versions 14.00.50727.762 and 15.00.30729.0) compile the code without warnings or errors (using the simplest possible command line: 'cl foo.cpp').
Dev-C++ 4.9.9.2 does generate errors when compiling the function.
This seems like such an obvious problem that I must be overlooking something.
Edit: litb dug up the Duplicate for this question Default as a variable name.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
MS Visual C++ 6.0 和 g++ 4.4.0 会产生大量错误 - 正如它们应该的那样。 我觉得很难相信
C++ 编译器会接受这个 - 你确定你真的编译了这段代码吗?
MS Visual C++ 6.0 and g++ 4.4.0 produce numerous errors - as they should. I find it hard to believe
that a C++ compiler would accept this - are you sure you really compiled this code?
默认值是 保留字,gcc 4.3.2 不会编译该代码,不会确定 MS 编译器在那里玩什么!
default is a reserved word, gcc 4.3.2 won't compile that code, not sure what the MS compiler is playing at there!
不,default 是一个保留的c++ 关键字,这就是它无法编译的原因。
No, default is a reserved c++ keyword, that's why its failing to compile.