热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

没有箭头的gcc7lambda表达式返回类型

如何解决《没有箭头的gcc7lambda表达式返回类型》经验,为你挑选了1个好方法。

我偶然写下了以下内容并且没有使用gcc 8发出警告:

auto f = []() bool {};

我从未听过或读过有关以前语法的任何内容.我的意图是写:

auto f = []() -> bool {};

在这种情况下,gcc发出了我预期的非常有用的警告:no return statement.

我做了一些实验,GCC接受了第一种语法,没有任何警告或错误,因为至少是GCC 7.1,而不是GCC 6.3.没有其他编译器似乎接受它.此外,本机类型接受第一种语法:bool int float这样但不适用于类等struct A {};

这是一个错误还是这是一个新的c ++ 17或c ++ 20语法,例如属性?



1> John Zwinck..:

这似乎是一个侥幸.只要你有GCC 7或8,代码(但不是你指出的警告)是相同的.但GCC 6不接受它,也不接受我试过的任何其他编译器.

它似乎不是有效的C++.它肯定没有为C++ 20添加,因为GCC 7没有添加任何C++ 20功能(虽然8确实添加了一些).


推荐阅读
author-avatar
lovely尤研君2007
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有