Non-Profit, International

Spirit unsterblich.

  • constexpr 函数,对象和常量求值中的内存分配

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

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

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

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

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

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

    字数统计:5500
    协程中最主要的两个概念是 Awaiter 和 Promise,Awaiter 用于协程切换,而 Promise 用于储存用户定义的协程状态信息以及结果。此外,协程还需要一个用于管理协程以及获得协程结果的 Task。