参考链接:http://blog.jobbole.com/79228/
1 返回类型推导
在C++11中,lambda函数参数需要被声明为具体的类型。C++14放宽了这一要求,允许lambda函数参数类型使用类型说明符auto。
在C++11中,lambda函数参数需要被声明为具体的类型。C++14放宽了这一要求,允许lambda函数参数类型使用类型说明符auto。
代码简洁,并且可以增强重构。
实际使用模板参数
auto lambda = [] (auto x, auto y) {return (x + y); } //等同于 struct unnamed_lambda { template <typename T,typename U> auto operator()(T x, U y) const { return (x+y); } }; auto lambda = unnamed_lambda();
如果一个函数有多个返回路径,那么每个返回路径返回的值需要具有相同的类型。
auto f(int i) { if ( i < 0 ) return -1; else return 2.0 //编译会报错 }
2 可初始化的Lambda捕获
Lambda中捕获可以实现初始化,用逗号隔开,从左往右运行
auto y = [&r = x, x = x+1]()->int {...}
3 [[deprecated]]属性
[[deprecated]]标签放到声明的前面即可—可以是类,变量,函数,或者其他一些实体的声明,被放在class,enum等关键字之后,实体名之前。
标记过时的定义,不建议使用
class [[deprecated]] flaky { }; [[deprecated("Consider using something other than cranky")]] int cranky() { return 0; } int main() { flaky f; return cranky(); }
其他
二进制常量以前缀0b(或0B)开头,二进制数字紧随其后。
单引号字符作为数字分隔符,一百万可以是:1’000’000.00 或者 1’0’00’0’00.00
#include <iostream> int main() { int val = 0b11110000; std::cout << "Output mask: " << 0b1000'0001'1000'0000 << "\n"; std::cout << "Proposed salary: $" << 300'000.00 << "\n"; return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!