C++20 Modules Cheatsheet
随着 C++20 的普及,modules 这一重磅特性在主流工具链中也逐渐得到了愈发完善的支持。目前三大主流编译器中,MSVC 拥有最成熟的 modules 支持,Clang 紧随其后,gcc 也在加… 阅读更多 »C++20 Modules Cheatsheet
随着 C++20 的普及,modules 这一重磅特性在主流工具链中也逐渐得到了愈发完善的支持。目前三大主流编译器中,MSVC 拥有最成熟的 modules 支持,Clang 紧随其后,gcc 也在加… 阅读更多 »C++20 Modules Cheatsheet
C++20添加了两个declaration specifier:consteval 与 constinit 。前者只能参与函数的声明,后者只能参与变量的声明。 在介绍 consteval 与 cons… 阅读更多 »C++20: consteval & constinit
程序中常需要一次性传递多个同质对象。我们一般通过传递两个迭代器的方式来传递多个对象,这两个迭代器按约定一般称为首迭代器和尾迭代器。首迭代器指向被引用的多个对象中的第一个对象,尾迭代器指向被引用的多个对… 阅读更多 »C++20: Ranges
Constraints 和 concepts 是 C++20 引入的两个非常受欢迎的特性。Constraints 和 concepts 的引入使得原本许多只能依靠 SFINAE 等模板黑魔法的写法变得… 阅读更多 »C++20: Constriants & Concepts
Three-Way Comparison C++20新增了一个运算符 <=>,称为 three way comparison operator,或三路比较运算符。这个运算符是一个二元运算符… 阅读更多 »C++20: Three-way Comparison
经过多年的标准化进程,在 C++ 开发者社区中呼声极高的 Modules 特性终于被收入 C++20 标准中。本文将对这一特性进行介绍和探讨。 编译器支持 在正式介绍前,我们首先看一看现有的编译器对 … 阅读更多 »C++20: Modules
在 C++20 之前,C++ 的格式化字符串相关设施一直饱受诟病。具体来说,在不依赖第三方库的情况下,有两种方式实现格式化字符串: 使用从 C 语言沿袭过来的 sprin… 阅读更多 »C++20: std::format
Coroutines(协程)是 C++20 引入的几个重要的语言级新特性之一。C++20 引入的协程机制与其他语言的异步(async)或类似机制有相似的地方,但也有很大的不同:C++20 的协程机制能… 阅读更多 »C++20: Coroutines