这是有效的 C++ 吗? 功能与否?

发布于 2024-07-21 00:42:06 字数 535 浏览 3 评论 0原文

在我看来,该函数无效,因为它使用关键字“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 挖出了此问题的重复 默认为变量名称

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

心安伴我暖 2024-07-28 00:42:06

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?

木格 2024-07-28 00:42:06

默认值是 保留字,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!

想你的星星会说话 2024-07-28 00:42:06

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

No, default is a reserved c++ keyword, that's why its failing to compile.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文