博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于 lambda expression 返回值的类型转换
阅读量:4984 次
发布时间:2019-06-12

本文共 683 字,大约阅读时间需要 2 分钟。

lambda expression(lambda 表达式,$\lambda$ 表达式) 是 C++ 11 引入的特性。

一般而言,lambda 表达式的返回值类型可不指定,而由返回值推断。

需要注意的是:在不指定返回值类型时,lambda 表达式的返回值类型推断是支持隐式(或称「自动」)类型转换的;这样设计是合理的(在逻辑上是说得通的),理由如下:

假设 lambda 表达式支持隐式返回值类型转换;显然,只有在 lambda 表达式中存在两个类型不同的 「return 表达式」时才有必要进行返回值类型转换;这样就给返回值类型推断带来一个问题:

究竟以哪个 return 表达式的类型作为返回值类型,而对其他与之类型不同的 return 表达式做自动类型转换(假设所涉及的类型转换都是存在的)呢?

这个问题并没有一个合理(resonable)的答案,「把第一个出现的 return 表达式的类型作为 lambda 表达式的返回值类型」其实并不合理(至少未必总是合理的)。

如果希望避免对 return 表达式的显式类型转换,则需要指明返回值类型,这样就可以做自动类型转换了:

auto f = [](Parameter-List) -> Return-Type {    //Statements    return expr1_of_type1;    // ...    return expr2_of_type2;    // ...};

Reference

转载于:https://www.cnblogs.com/Patt/p/8112603.html

你可能感兴趣的文章
引入css的几种方式
查看>>
国庆放七天假结束
查看>>
面试了一个开发人员
查看>>
软件工程及软件项目开发流程
查看>>
关于android4.3 bluetooth4.0的那些事儿
查看>>
storm的定时任务
查看>>
shutil模块(了解)
查看>>
第1天,Python入门
查看>>
HOJ 1009Fat Cat
查看>>
classloader
查看>>
【转载】真实一个初中生黑客梦的道路
查看>>
eclipse Java注释修改
查看>>
嵌入式成长轨迹14 【嵌入式环境及基础】【Linux下的C编程 上】【gcc、gdb和GNU Make】...
查看>>
C语言讲义——变量的输出
查看>>
shell脚本 ----每天学一点shell
查看>>
FZU2150 :Fire Game (双起点BFS)
查看>>
php_常用操作_读取文件_数据库操作
查看>>
Linux中GCC源码编译安装
查看>>
equals与==关于Object覆盖和重载问题
查看>>
KVO
查看>>