附录 A - 技术列表
C++11 章节
C++14 章节
C++17 章节
C++20 章节
附录 B - C++ Lambda 表达式的六大优势
Lambda 使代码更可读
Lambda 编译比 std::bind 快 7 倍!
Lambda 增强了代码的局部性
Lambda 允许轻松存储状态
Lambda 允许多个重载在同一的地方
Lambda 随着 C++ 的每一次修订而变得更好!
参考文献
文章作者: 奇点创客
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 奇点创客!
相关推荐

2023-09-01
C++ 初始化的故事
关于本书在 C++ 中,初始化是一个热门话题!互联网上充满了关于最佳实践的讨论,甚至还有关于这个主题的有趣的表情包。这种情况并不奇怪,因为有十几种方法可以初始化一个简单的整数值、有自动类型推断的复杂规则、数据成员和对象生命周期的细微差别。 于是,出现了这本书。 通过本文,你将学习在现代 C++ 中初始化各种类型的变量和数据成员的实用选项。具体来说,本书教授了多种类型的初始化、构造函数、非静态数据成员初始化、内联变量、指定初始化器等。此外,你将看到从 C++11 到 C++20 的变化和新技术,以及大量的示例来加强你的理解。 计划是解释初始化的大部分(如果不是全部的话),学习许多优秀的 C++ 技术,并了解底层到底发生了什么。 为什么你需要阅读本书?使用现代 C++(从 C++11 开始),我们有许多新特性来简化工作和代码。改进的一个方面是初始化。现代 C++ 增加了新的初始化规则,试图在保持旧行为(主要来自 C 语言)兼容性的同时简化初始化。然而,有时规则可能看起来令人困惑和复杂,甚至 ISO 委员会也可能需要在此过程中纠正一些事情。这本书将帮助你浏览这些原则,以更好地理解这个主...

2023-10-10
C++ Lambda 的故事——C++14
C++14 中的 LambdaC++14 对 Lambda 表达式增加了两个重要的功能: 带初始化器的捕获 泛型 Lambda 此外,该标准还更新了一些规则,例如: Lambda 的默认参数 以 auto 作为返回类型 这些特性可以解决 C++11 中出现的几个问题。你可以在 N4140 和 Lambdas 中查看相关细节。此外,在本章,你将会了解到: 捕获非静态数据成员 用现代的技术替代旧的函数风格工具,如 std::bind1st LIFTING 惯用法 递归 Lambda Lambda 的默认参数让我们从一些较小的更新开始: 在 C++14 中,可以在函数调用中使用默认参数。这是一个小功能,但可以使 Lambda 更像一个常规函数。 12345678// Ex3_1: Lambda with Default Parameter.#include <iostream>int main() { const auto lam = [](int x = 10) { std::cout << x << ...

2023-10-01
C++ Lambda 的故事——C++98/03
C++98/03 中的 Lambda作为开始,了解一些关于我们所讨论的主题的背景知识是很有必要的。为此,我们会转而回顾过去,看看那些不使用任何现代 C++ 技术的代码——即 C++98/03 规范下的代码。 在本章中,我们将会学习: 如何将旧式的函数对象传给 C++ 标准库中的各种算法。 函数对象类型的限制。 为什么辅助函数不够好。 C++0x/C++11 中引入 Lambda 的动机。 C++98/03 中的可调用对象标准库的一个基本设计思想是:对于像 std::sort,std::for_each,std::transform 等这样的泛型函数,能够接受任何可调用对象然后对输入容器中的每个元素依次调用它。然而,在 C++98/03 中,可调用对象只包括函数指针和重载了调用操作符的类类型(通常被称为“函子”)。 举例来说,我们有一个打印一个向量中所有元素的应用程序。在第一个版本中,我们使用普通的函数来实现: 12345678910111213// Ex1_1: 一个基础的函数对象.#include <algorith...

2023-10-05
C++ Lambda 的故事——C++11
C++11 中的 Lambda万岁!C++ 委员会听取了开发人员的意见,在 C++11 标准中加入了 Lambda 表达式! Lambda 表达式很快就成为现代 C++ 中最具辨识度的一个特性。 你可以在 N3337(C++11 的最终草案)中阅读其完整规范,以及关于 Lambda 的单独部分:[express .prim.lambda]。 我认为委员会以一种聪明的方式在语言中添加了 Lambda。他们设计了新的语法,但随后编译器将其“展开”为一个未命名的“隐藏的”函数对象类型。这样我们就拥有了真正强类型语言的所有优点(以及缺点),使代码理解起来更加容易。 在本章,你将会学习到: Lambda 的基础语法。 如何捕获一个变量。 如何捕获一个类的非静态成员变量。 Lambda 的返回类型。 什么是闭包类型。 怎样将 Lambda 表达式转换成一个函数指针从而能够去使用 C 风格的 API. 什么是 IIFE 以及为什么它是的有用的。 如何继承一个 Lambda 表达式。 让我们出发吧! Lambda 表达式的语法下图说明了 C++11 中 Lambda 的语法: 现在让我们通...

2023-10-20
C++ Lambda 的故事——C++20
C++20 中的 LambdaLambda 语法的更新变化速览consteval Lambda捕获参数包模板 Lambda概念与 Lambda无状态 Lambda 的变化Lambda 和 constexpr 算法C++20 重载模式的更新总结

2023-10-15
C++ Lambda 的故事——C++17
C++17 中的 LambdaLambda 语法的更新类型系统中的异常规范constexpr Lambda 表达式*this 的捕获IIFE 的更新用 IIFE 提取函数可变泛型 lambda 的更新从多个 Lambda 继承使用 Lambda 来并发执行总结
评论
公告
欢迎来到我的博客!
目录
Lambda 故事



