第 10 章 展望:C++20 简介

    概念(Concepts)是对 C++ 模板编程的进一步增强扩展。简单来说,概念是一种编译期的特性, 它能够让编译器在编译期时对模板参数进行判断,从而大幅度增强我们在 C++ 中模板编程的体验。 使用模板进行编程时候我们经常会遇到各种令人发指的错误, 这是因为到目前为止我们始终不能够对模板参数进行检查与限制。 举例而言,下面简单的两行代码会造成大量的几乎不可读的编译错误:

    而这段代码出现错误的根本原因在于, 对排序容器必须提供随机迭代器,否则就不能使用,而我们知道 是不支持随机访问的。 用概念的语言来说就是: 中的迭代器不满足 中随机迭代器这个概念的约束(Constraint)。 在引入概念后,我们就可以这样对模板参数进行约束:

    缩写为:

    甚至于直接将其作为类型来使用:

    TODO:

    模块

    TODO:

    合约

    TODO:

    TODO:

    协程

    事务内存

    TODO:

    总的来说,终于在 C++20 中看到 Concepts/Ranges/Modules 这些令人兴奋的特性, 这对于一门已经三十多岁『高龄』的编程语言,依然是充满魅力的。

    返回目录 | | 下一章 进一步阅读的学习材料

    进一步阅读的参考资料

    许可