跳至正文

C++20: Ranges

程序中常需要一次性传递多个同质对象。我们一般通过传递两个迭代器的方式来传递多个对象,这两个迭代器按约定一般称为首迭代器和尾迭代器。首迭代器指向被引用的多个对象中的第一个对象,尾迭代器指向被引用的多个对… 阅读更多 »C++20: Ranges

C++20: Modules

经过多年的标准化进程,在 C++ 开发者社区中呼声极高的 Modules 特性终于被收入 C++20 标准中。本文将对这一特性进行介绍和探讨。 编译器支持 在正式介绍前,我们首先看一看现有的编译器对 … 阅读更多 »C++20: Modules

C++20: std::format

在 C++20 之前,C++ 的格式化字符串相关设施一直饱受诟病。具体来说,在不依赖第三方库的情况下,有两种方式实现格式化字符串: 使用从 C 语言沿袭过来的 sprin… 阅读更多 »C++20: std::format

C++20: Coroutines

Coroutines(协程)是 C++20 引入的几个重要的语言级新特性之一。C++20 引入的协程机制与其他语言的异步(async)或类似机制有相似的地方,但也有很大的不同:C++20 的协程机制能… 阅读更多 »C++20: Coroutines

由一个性能下降问题引发的对 CPU 缓存一致性协议性能开销的度量

问题 实验室的 L 同学最近在进行对多线程程序进行模糊测试的研究工作。在实验阶段,L 同学发现了一个有趣的现象:在使用著名的模糊测试工具 AFL 对一个多线程程序进行测试时,被测试程序的性能大约只有直… 阅读更多 »由一个性能下降问题引发的对 CPU 缓存一致性协议性能开销的度量