C++20高级编程

C++20高级编程

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

C++高级编程技术与C++20标准特性全解析,适合中高级程序员、架构师和框架开发者阅读。

内容简介

本书主要讲解C++库、框架开发中的高级编程技术,以及最新的C++20标准特性。全书共10章,分别为:类型与对象、编译时多态、概念约束、元编程介绍、模板元编程、constexpr 元编程、Ranges 标准库、协程、模块、综合运用。其中 C++20 的四大特性独立成章,一些小的特性则贯穿于全书,其他章节则探讨了面向对象、元编程、函数式编程、并发编程等话题。本书针对以上新特性准备了丰富的代码样例,相信通过这些代码读者很容易掌握这些新特性。作为一本讲解 C++ 高级编程的书,本书还探讨了很多元编程话题,这是作为库开发必不可少的技能,它们也将随着 C++ 的演进而不断演进,大大提升库开发者的编程体验,尤其是近年来 C++ 的标准提案经历了从模板元编程向 constexpr 元编程转换的过程。本书适合中高级C++程序员、架构师、框架开发者阅读,阅读前最好能够掌握一些现代 C++ 的知识。对于想要系统性学习 C++20并进阶 C++技能的,一定不要错过本书。

章节目录

封面

前折页

书名页

版权

前言

目录

第1章 类型与对象

1.1 类型的作用

1.2 现代C++中对类型处理能力的演进

1.3 值类别(value category)

1.3.1 理解左值与右值

1.3.2 函数形参何时使用何种引用

1.3.3 转发引用与完美转发

1.4 类型推导

1.4.1 auto类型推导

1.4.2 decltype类型推导

1.4.3 decltype(auto)类型推导

1.4.4 std::declval元函数

1.4.5 类模板参数推导(CTAD)

1.5 函数对象

1.5.1 定义函数对象

1.5.2 lambda表达式

1.5.3 函数适配器

1.6 运行时多态

1.6.1 运行时多态手段

1.6.2 subtype多态vs ad-hoc多态

1.7 调试手段

1.7.1 编译时打印方案

1.7.2 运行时打印方案

1.7.3 使用外部工具

第2章 编译时多态

2.1 函数重载机制

2.1.1 名称查找

2.1.2 模板函数处理

2.1.3 重载决议

2.1.4 注意事项

2.1.5 再谈SFINAE

2.2 类型特征(Type traits)

2.2.1 Type traits谓词与变量模板

2.2.2 类型变换

2.2.3 辅助类

2.2.4 空基类优化

2.2.5 实现Type traits

2.2.6 类型内省

2.2.7enable_if元函数

2.2.8 标签分发

2.2.9 if constexpr

2.2.10 void_t元函数

2.3 奇异递归模板

2.3.1 代码复用

2.3.2 静态多态

2.3.3 enable_shared_from_this模板类

2.4 表达式模板

2.4.1 标量延迟计算

2.4.2 向量延迟计算

2.4.3 提高表达力

2.5 注意事项

第3章 概念约束

3.1 定义概念

3.2 requires表达式

3.2.1 简单要求

3.2.2 类型要求

3.2.3 复合要求

3.2.4 嵌套要求

3.2.5 注意事项

3.3 requires子句

3.4 约束的偏序规则

3.4.1 约束表达式归一化

3.4.2 简单约束的包含关系

3.4.3 一般约束的包含关系

3.4.4 using类型别名与concept表达式别名

3.5 概念标准库

3.5.1 same_as(与某类相同)

3.5.2 derived_from(派生自某类)

3.5.3 convertible_to(可转换为某类)

3.5.4 算术概念

3.5.5 值概念

3.5.6 invocable(可调用的)

3.6 综合运用之扩展transform变换算法

3.7 注意事项

第4章 元编程介绍

4.1 元编程历史

4.2 模板历史

4.3 constexpr历史

4.4 元编程能力与应用

4.4.1 零成本抽象

4.4.2 值计算

4.4.3 类型计算

4.4.4 编译时多态

4.4.5 类型安全

4.4.6 泛型编程

4.4.7 静态反射

4.4.8 内部领域特定语言EDSL

第5章 模板元编程

5.1 模板vs宏

5.1.1 泛型函数

5.1.2 泛型容器

5.2 模板类元函数

5.2.1 数值计算

5.2.2 类型计算

5.3 TypeList

5.3.1 基本方法

5.3.2 高阶函数

5.3.3 常用算法

5.4 综合运用

5.4.1 全局最短路径

5.4.2 KV数据表

5.4.3 注意事项

第6章 constexpr元编程

6.1 constexpr变量

6.2constinit初始化

6.3 折叠表达式

6.4 constexpr函数

6.4.1 consteval

6.4.2 编译时内存分配

6.4.3 编译时虚函数

6.4.4 is_constant_evaluated

6.4.5 停机问题

6.4.6 检测未定义行为

6.5 非类型模板参数

6.6 constexpr与TypeList

6.6.1 类型、值的包裹类

6.6.2 高阶函数

6.6.3 管道操作符

6.6.4 重构KV数据表

6.7 综合运用之编译时字符串操作

第7章 Ranges标准库

7.1 range访问操作

7.1.1 ranges::begin

7.1.2 ranges::end

7.1.3 ranges::size

7.1.4 ranges::empty

7.1.5 ranges::data

7.2 range相关概念

7.2.1 range

7.2.2 borrowed_range

7.2.3 sized_range

7.2.4 view

7.2.5 其他概念

7.3 range实用组件

7.3.1 view_interface

7.3.2 subrange

7.3.3 ref_view

7.4 range工厂

7.4.1 empty_view

7.4.2 single_view

7.4.3 iota_view

7.4.4 istream_view

7.5 range适配器

7.5.1 适配器对象

7.5.2 all

7.5.3 filter

7.5.4 transform

7.5.5 take

7.5.6 take_while

7.5.7 drop

7.5.8 drop_while

7.5.9 join

7.5.10 split

7.5.11 common

7.5.12 reverse

7.5.13 elements

7.6 其他改善

7.6.1 迭代器概念

7.6.2 算法接口改善

7.7 综合运用

7.7.1 矩阵乘法

7.7.2 日历程序

7.7.3 注意事项

第8章 协程

8.1 协程的起源

8.2 协程初探

8.3 函数与协程理论

8.4 揭秘co_await表达式

8.4.1 表达式转换过程

8.4.2 Awaiter对象

8.4.3 标准库中的Awaiter

8.5 揭秘Promise概念

8.5.1 协程句柄

8.5.2 Promise概念

8.6 综合运用

8.6.1 生成器

8.6.2 为已有类型非侵入式扩展协程接口

8.6.3 利用协程机制简化错误处理

8.6.4 注意事项

第9章 模块

9.1 Hello World模块

9.2 定义一个模块

9.3 模块分区

9.4 私有片段

9.5 模块样板文件

9.6 注意事项

第10章 综合运用

10.1 配置文件反序列化框架

10.1.1 背景介绍

10.1.2 标准的缺失,静态反射机制

10.1.3 元数据设计

10.1.4 REPEAT宏

10.1.5 结构体遍历

10.1.6 编译时多态

10.1.7 反序列化数据类型

10.2 AsyncIO协程库

10.2.1 背景介绍

10.2.2 性能测试

10.2.3 事件驱动模型

10.2.4 Handle类设计

10.2.5 调度器设计

10.2.6 Task协程设计

10.2.7 实现一些协程

10.2.8 注意事项

附录

附录A 概念约束历史

参考文献

后折页

封底

C++20高级编程是2022年由机械工业出版社出版,作者罗能。

得书感谢您对《C++20高级编程》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
高级办公应用案例教程 电子书
本书的1~4章为案例分析和讲解部分,分别介绍了Windows、Word、Excel以及Powerpoint软件。每个案例详细介绍其操作步骤,并在案例后面附上了对应的练习题,供读者自行练习,以便更好地掌握知识点。本书的5~6章为全国计算机等级考试一级和二级(MsOffice)的相关内容,分为考试大纲和模拟题两部分。
Python游戏趣味编程 电子书
1.易于学习和理解:先讲解较少的语法知识,通过游戏案例逐步引入新的语法知识; 2.为初学者量身打造:案例从易到难,所有程序的代码均不超过100行; 3.趣味性强:12个案例,涵盖了多种游戏类型,寓教于乐; 4.可拓展性强:提供练习题和参考答案,巩固知识,训练逻辑思维; 5.配套素材齐全:提供完整源代码和分步骤源代码、游戏素材、游戏效果演示视频,可通过异步社区观看游戏开发步骤讲解视频; 6.全彩印刷。 美国教育家杜威曾说过:“大多数的人,只觉得五官能接触的、实用的东西才有趣味,书本上的趣味是没有的。” 《Python游戏趣味编程》通过介绍12个由易到难的有趣游戏案例的编写过程,带领读者学习用Python开发趣味游戏,从而提升读者对编程的兴趣和能力。 《Python游戏趣味编程》把趣味游戏开发应用于Python编程教学,通过介绍12个由易到难的有趣游戏案例的编写过程,带领读者从零基础开始学习。全书共13章,系统讲解了Python语言基本概念、开发环境搭建、循环、列表、数据类型、条件、复合运算符、字符串拼接、布尔变量、数组、函数、列表操作、面向对象编程等基础知识,还介绍了图片操作、文件读写、声音播放、异常处理等较为实用的编程技能,所有这些知识和技能,都通过游戏案例展示其用法。贯穿各章,还给出了一些练习,帮助读者巩固所学的知识。附录A给出了这些练习题的答案,附录B给出了Python语法知识在书中相关章节的索引。 《Python游戏趣味编程》适合不同年龄、不同层次的Python编程初学者阅读和自学,也可以作为中学生、大学生学习程序设计的教材和少儿编程培训机构的参考教材。 本书适合以下人群阅读: 想要让孩子学习Python编程的家长,或者想要自己教孩子编程的家长。 学习过其他编程语言,想要快速学习Python的人。 对计算机游戏感兴趣,想要尝试Python游戏编程的人。 想要学习Python编程的中学生和大学生。 少儿编程培训机构的老师和学生。 任何对计算机编程感兴趣、特别是初次接触编程的人。 本书中制作和讲解的小游戏 弹跳的小球 美丽的圆圈画 疯狂的小圆圈 飞翔的小鸟 见缝插针 飞机大战 勇闯地下一百层 贪吃蛇 拼图游戏 消灭星星 坚持一百秒 趣味图像生成
Python少儿趣味编程 电子书
适读人群 :任何想要学习Python或初次接触编程的人;Python语言的初学者、计算机专业的学生。尤其适合信息技术课教师或培训机构的老师以及青少年读者(初高中学生)阅读。 《Python少儿趣味编》由少儿编程畅销图书作者精心编写,是少儿学习Python编程的趣味指南,全书共17章,按照由简到难、逐步深入的方式组织各章内容。《Python少儿趣味编》精心选取内容,注重难易适度,语言通俗易懂,代码示例丰富。在每章的末尾,还给出了一些练习题并给出了解答。 《Python少儿趣味编》具有以下特色: ● 精心选取和组织内容,注重难易适度——涵盖基础知识、趣味应用和热门应用。 ● 坚持“做中学”的理念和方法——通过详细的示例和课后练习帮助读者学习和掌握。 ● 体现趣味性——用海龟给图绘制的机器猫、小猪佩奇等卡通角色,编写贪吃蛇游戏,对古典名著《西游记》分词。 ● 增强可拓展性——逐步扩展和改进的“成绩单”示例程序,章末习题既巩固知识,也拓展编程技能。 《Python少儿趣味编》适合想要学习Python 编程基础的少年儿童(尤其是10 岁以上的孩子)及想要教孩子学习编程的家长阅读,也适合少儿编程培训班的老师用作少儿编程培训的教材。 本书带领读者编写的趣味程序包括: ● 帮Johnson 找到回家的路; ● 逐步扩展和改进的“成绩单”示例程序; ● 用海龟绘图绘制的机器猫; ● 用海龟绘图绘制小猪佩奇; ● 弹球游戏; ● 编写贪吃蛇游戏; ● 对古典名著《西游记》分词。
Python编程轻松进阶 电子书
阅读本书,理解代码底层逻辑,像职业程序员一样使用Python。
Python编程做中学 电子书
一本零基础的Python编程入门书。