万本电子书0元读

万本电子书0元读

顶部广告

C++20高级编程电子书

本书为本本版的C 20高级编程书籍,作者为华为海思高级工程师,其技术能力出众,在华为技术圈很有知名度,常年活跃在GitHub,其技术文章受到广大网友的关注与转载。本书是作者多年编程经验的总结,除了详解C 20的概念约束、协程、Ranges、模块等新特征外,还重讲述库、框架发的高级编程技术,以独特的视角和丰富的案例帮助读者掌握C 20。随书附赠全部案例源码。

售       价:¥

纸质售价:¥76.30购买纸书

256人正在读 | 0人评论 6.4

作       者:罗能

出  版  社:机械工业出版社

出版时间:2022-07-01

字       数:17.7万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
C 20高级编程主要讲解C 库、框架发中的高级编程技术,以及*新的C 20标准特性。全书共10章,分别为:类型与对象、编译时多态、概念约束、元编程介绍、模板元编程、constexpr元编程、Ranges标准库、协程、模块、综合运用。其中C 20的四大特性独立成章,一些小的特性则贯穿于全书,其他章节则探讨了面向对象、元编程、函数式编程、并发编程等话题。 C 20高级编程针对以上新特性准备了丰富的代码样例,并随书附赠全部案例源码。相信通过这些代码,读者很容易掌握这些新特性。作为一本讲解C 高级编程的书,本书还探讨了很多元编程话题,这是作为库发必不可少的技能,它们也将随着C 的演而不断演,大大提升库发者的编程体验,尤其是近年来C 的标准提案经历了从模板元编程向constexpr元编程转换的过程。 C 20高级编程适合中高级C 程序员、架构师、框架发者阅读,阅读前*好能够掌握一些现代C 的知识。对于想要系统性学习C 20并阶C 技能的读者,一定不要错过本书。<br/>【推荐语】<br/>本书为本版的C 20高级编程书籍,作者为华为海思高级工程师,其技术能力出众,在华为技术圈很有知名度,常年活跃在GitHub,其技术文章受到广大网友的关注与转载。本书是作者多年编程经验的总结,除了详解C 20的概念约束、协程、Ranges、模块等新特征外,还重讲述库、框架发的高级编程技术,以独特的视角和丰富的案例帮助读者掌握C 20。随书附赠全部案例源码。<br/>【作者】<br/>罗能,华为海思高级工程师,2015年获得安徽省ACM编程竞赛全省,2018年获得华为无线编程竞赛冠军。知乎《魅力C 》专栏作者,累计收获6000 赞,7000 收藏,阅读量超100万。 熟悉面向对象编程、函数式编程,经常活跃于源社区,为源社区贡献过多项代码,GitHub累计收获1300 星。<br/>
目录展开

前折页

书名页

版权

前言

第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 概念标准库<concepts>

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 概念约束历史

参考文献

后折页

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部