C++17 详解 23 —文件系统

本文为 《C++17 in detail》 一书的中文渣中渣译文,不足之处还望指正。

翻译太特么累人了……剩余部分还是只做摘要翻译吧。

12. 文件系统

12.1 总览

头文件:

1
#include <filesystem>

std::filesystem 是一个模块,同时也是一个命名空间。核心元素包括:

阅读更多

C++17 详解 22 — search 和字符串匹配

本文为 《C++17 in detail》 一书的中文渣中渣译文,不足之处还望指正。

翻译太特么累人了……剩余部分还是只做摘要翻译吧。

11. search 和字符串匹配

11.1 新算法

C++17 从两方面更新了 std::search

  • 指定执行策略以通过并行方式运行默认算法版本
  • 提供 Searcher 对象(译注:即三种算法)处理查找

译注:执行策略是 STL 算法通用的更新特性,后边有专门的一章讲解,所以本章只介绍了 searcher。

阅读更多

C++17 详解 21 — 字符串转换

本文为 《C++17 in detail》 一书的中文渣中渣译文,不足之处还望指正。

翻译太特么累人了……剩余部分还是只做摘要翻译吧。

10. 字符串转换

两类函数:

  • from_chars —将字符串转换成整数、浮点数等
  • to_chars —将数字转换成字符串
阅读更多

C++17 详解 20 — std::string_view

本文为 《C++17 in detail》 一书的中文渣中渣译文,不足之处还望指正。

翻译太特么累人了……剩余部分还是只做摘要翻译吧。

9. std::string_view

头文件:

1
#include <string_view>

string_view 是 string 的“视图”。它不拥有 string,也不会复制其内容,但你却可以通过 string_view 进行一些 string 相关的操作,从而避免不必要的复制。

阅读更多

C++17 详解 19 — std::any

本文为 《C++17 in detail》 一书的中文渣中渣译文,不足之处还望指正。

翻译太特么累人了……剩余部分还是只做摘要翻译吧。

8. std::any

std::optional 可以表示一个二态值:空值、非空值;

std::variant 表示一个指定类型集合内的类型;

std::any 更进一步,它可以存储任何类型。

综合用例:

阅读更多

FFmpeg 截取 webp 动图

FFmpeg 支持对动态 webp 图片的编码,但是默认参数下编码后的图片有两个比较明显的问题:

  • 动图不会自动循环播放,会停留在最后一帧画面
  • 图像质量差,有比较明显的马赛克
阅读更多

C++17 详解 16 — 标准库变动

本文为 《C++17 in detail》 一书的中文渣中渣译文,不足之处还望指正。

翻译太特么累人了……剩余部分还是只做摘要翻译吧。

第二部分——标准库变动

本部分你将学到:

  • 如何通过 std::optional 表达可空(nullable)类型
  • 什么是 tagged union?我们为什么需要 std::variant 这样类型安全的 union
  • 如何通过 std::any 表达任意类型
  • 如何利用 string_view 提高性能并且不破坏你的程序
  • 标准库里都有哪些针对字符串的新加操作
  • 如何利用标准库处理文件系统
  • 什么是并行算法

译注:关于并行算法,我之前已经吐槽过了。结论是不能用,不必期许过深。

C++17 详解 15

本文为 《C++17 in detail》 一书的中文渣中渣译文,不足之处还望指正。

5. 标准属性(attribute)

代码注解——属性——可能不是 C++ 最为人所知的特性。但是,属性却可能便于对编译器和其他程序员传达附加信息。C++11 起有了标准方式来声明属性。C++17 里你将能获得更多属性相关的有用的附加信息。

本章你将学到:

  • C++ 里属性是什么
  • 厂商特有的代码注解 V.S. 标准格式
  • 什么情况下属性是有用的
  • C++11 和 C++14 属性
  • C++17 新添加的属性
阅读更多