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...
C++ 初始化的故事
关于本书在 C++ 中,初始化是一个热门话题!互联网上充满了关于最佳实践的讨论,甚至还有关于这个主题的有趣的表情包。这种情况并不奇怪,因为有十几种方法可以初始化一个简单的整数值、有自动类型推断的复杂规则、数据成员和对象生命周期的细微差别。 于是,出现了这本书。 通过本文,你将学习在现代 C++ 中初始化各种类型的变量和数据成员的实用选项。具体来说,本书教授了多种类型的初始化、构造函数、非静态数据成员初始化、内联变量、指定初始化器等。此外,你将看到从 C++11 到 C++20 的变化和新技术,以及大量的示例来加强你的理解。 计划是解释初始化的大部分(如果不是全部的话),学习许多优秀的 C++ 技术,并了解底层到底发生了什么。 为什么你需要阅读本书?使用现代 C++(从 C++11 开始),我们有许多新特性来简化工作和代码。改进的一个方面是初始化。现代 C++ 增加了新的初始化规则,试图在保持旧行为(主要来自 C 语言)兼容性的同时简化初始化。然而,有时规则可能看起来令人困惑和复杂,甚至 ISO 委员会也可能需要在此过程中纠正一些事情。这本书将帮助你浏览这些原则,以更好地理解这个主...
楚辞-离骚
[先秦]屈原 【原文】帝高阳之苗裔兮,朕皇考曰伯庸。摄提贞于孟陬兮,惟庚寅吾以降。皇览揆余初度兮,肇锡余以嘉名。名余曰正则兮,字余曰灵均。纷吾既有此内美兮,又重之以修能。扈江离与辟芷兮,纫秋兰以为佩。汩余若将不及兮,恐年岁之不吾与。朝搴阰之木兰兮,夕揽洲之宿莽。日月忽其不淹兮,春与秋其代序。惟草木之零落兮,恐美人之迟暮。不抚壮而弃秽兮,何不改此度?乘骐骥以驰骋兮,来吾道夫先路! 【译文】我是远祖高阳氏的后裔啊,我父亲的名字叫伯庸。岁星正好运行到寅年正月啊,我呱呱降生。父亲端详我初生时的气度啊,从那时起他赐予我这贞祥的名字:他给我起名叫正则啊,起字作灵均。我欢喜自己刚出生已有如此众多的惠质啊,又加上具有出众的才能。披戴着江离和幽香的白芷啊,缀结秋兰作为腰间配饰。我快速前行看似追寻不上目标啊,担心岁月不再留给我更多的时间!早上拔取坡地上的木兰啊,傍晚采摘水洲中的宿莽。日月倏忽不返从不停下脚步啊,春天与秋天季节在更替。想到草木都要凋零啊,就怕楚王步入衰残的暮年。为什么不趁着壮年抛弃污秽啊,就此改变你的态度?骑上骏马奔驰吧!来吧,我在前面为你开路! 【原文】昔三后之纯粹兮,固众芳之所...




