为什么 GCC 说“不再支持命名返回值”?
我不小心把函数定义的左大括号放在了 return 语句之后
int id(int k) return k; { }
但是 GCC 回答了一个奇怪的错误消息
错误:不再支持命名返回值
谁能解释一下这个奇怪的功能可能是什么?我从来没有听说过。
I accidentally put the opening brace of my function definition after the return statement
int id(int k) return k; { }
But GCC answered with a weird error message
error: named return values are no longer supported
Can anyone please explain what that weird feature might be? I've never heard about it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
请参阅此处 - 通过在函数头。
此处添加了对不带此扩展的 NRVO 的本机支持 - GCC 3.1 发行系列。
简短剪切和粘贴上下文:
See here - early NRVO implementation by explicit definition of the named return value in the function header.
Native support for NRVO without this extension was added here - GCC 3.1 Release Series.
Brief cut and paste for context:
请参阅此处
他们是在 gcc3.4 中删除
See here
They were removed in gcc3.4
这是一个 GCC 扩展,在 GCC 3.4 中删除。
This was a GCC extension, removed in GCC 3.4.
//你可以看到区别,第一个给出返回错误,第二个工作正常......
#include;
使用命名空间 std;
//you can see the difference first one is giving a return error and second one is working fine.....
#include<bits/stdc++.h>
using namespace std;