如何解决缺少g ++接受的缺少的返回语句
class Foo
{
public:
int bar()
{
bool bla = false;
auto lambda = [&]() -> int {
if (bla)
{
return 0;
}
// return 1;
};
(void)lambda;
return 1;
}
};
int main()
{
Foo foo;
foo.bar();
}
以上示例完全使用g ++(Ubuntu 9.3.0-10ubuntu2)9.3.0和“ -Wall -Wpedantic -Werror -Wextra”进行编译。
但是,例如https://cppinsights.io/抱怨
/home/insights/insights.cpp:13:9: warning: non-void lambda does not return a value in all control paths [-Wreturn-type]
};
^
1 warning generated.
为什么gcc不抱怨?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。