Non-Profit, International

Spirit unsterblich.

  • 如何消费连续范围和连续迭代器

    字数统计:550
    连续迭代器是 C++17 中引入的新概念,连续迭代器支持的操作几乎完全和随机访问迭代器相同,但连续迭代器允许使用迭代器解引用后对象的地址来作为迭代器使用。一般来说,用户在使用迭代器时不需要关心迭代器的性质,只需要使用标准库提供的算法就能完成任务并且实现自动优化,但连续迭代器的性质使得我们可以进行一些低级操作,而不依赖标准库算法,此时就需要正确理解它。
  • constexpr 函数,对象和常量求值中的内存分配

    字数统计:1910
    C++20 的一个重大功能是支持在常量求值中进行内存分配,但如何编写这样的代码?C++11 发明 constexpr 后,该关键词的适用范围得到了数次扩张,从结果来说,已经需要“士别三日,当刮目相看”了。
  • 为什么你不应该暂停一个线程

    字数统计:1116
    该文章是 Raymond Chen 在 4 月 11 日发布的文章 The case of the UI thread that hung in a kernel call 的中文翻译,Raymond Chen 通过这个客户例子指出了不能暂停当前进程的线程的原因:被暂停的线程可能正在持有锁,暂停后该锁无法释放,导致死锁而无法恢复线程。
  • 局域网通过 SSH 连接 WSL2

    字数统计:440
    微软在 Windows 11 22621 开始给 WSL2 添加了一项新功能,镜像网络模式,通过镜像网络模式可以最大化的减小配置 WSL2 网络拓扑配置的难度。
  • Contracts

    字数统计:1452
    最近 C++ 标准委员会的线下会议上通过了契约(本文译法,有的地方也翻译成合同),可以说是 C++26 最重要的一个特性,因此还是非常有必要单独拿出来讲一讲。其本身设计涵盖语言的各个方面,就结果而言,契约本身设计还是非常简单而且轻量的,使用起来并不会太困难。
  • #embed

    字数统计:1580
    C23 和 C++26 添加了一个全新的预处理指令 #embed,用于在程序中高效的嵌入二进制内容。典型用途包括嵌入图像/音频/数据资源、预编译的着色器和用于复杂计算的预生成数据表等。
  • C++ 协程 - 任务

    字数统计:5782
    编写协程的 Task 实际上就是解决 4 个问题:协程生存期、异常传播、协程同步和结果发布。实际使用中,Promise 负责存储,Task 负责和外部进行交互。