Non-Profit, International

Spirit unsterblich.

  • C++ 转发引用

    字数统计:1067
    C++ 11 发明右值引用后,结合模板带来了一个优雅的参数传递方案即万能引用。许多教程使用“引用折叠”来描述模板在实例化 T&& 的行为(例如之前的文章右值引用和完美转发),但实际上这并不准确。作为库作者,可能还需要更接近真相。
  • C++ 异常 - 守卫

    字数统计:4311
    前几篇文章讲述了异常的基本概念和如何保证基本的异常安全,本文则综合并且结合最佳实践讲述如何编写正确的 C++ 代码。
  • One exception to rule them all

    字数统计:1625
    本文简单讨论了不同高级编程语言如何表达以及处理错误,并介绍了 C++ 中新的解决方案。
  • Programming Language Memory Models

    字数统计:14737
    这是 Go 语言现任领队 Russ Cox 在 2021 年写的文章 Programming Language Memory Models 的翻译。本文是第二篇,重点阐述了 C++ 和 Java 对内存模型设计的历史,以及 ECMAScript 2017 的初步尝试。
  • Programming Language Memory Models

    字数统计:11082
    这是 Go 语言现任领队 Russ Cox 在 2021 年写的文章 Programming Language Memory Models 的英文原版的备份。本文是第二篇,重点阐述了 C++ 和 Java 对内存模型设计的历史,以及 ECMAScript 2017 的初步尝试。
  • Hardware Memory Models

    字数统计:6665
    这是 Go 语言现任领队 Russ Cox 在 2021 年写的文章 Hardware Memory Models 的英文原版的备份。本文是第一篇,重点阐述了几个流行的 ISA(指令集架构)中如何实现缓存同步;第二篇则是总结了常见的支持多线程的语言中同步设施(内存模型)的设计;第三篇则讲述了 Go 的内存模型,Go 的内存模型已经于去年正式发布。
  • 硬件内存模型

    字数统计:11045
    这是 Go 语言现任领队 Russ Cox 在 2021 年写的文章 Hardware Memory Models 的翻译,虽然我对 Go 没什么兴趣,但在网上大概没有更好的从软件工程师的角度对多 CPU(现在也叫做多线程,或者多核心)架构并发编程的进行全面总结的文章了,因此在此提供中文版本。本文是第一篇,重点阐述了几个流行的 ISA(指令集架构)中如何实现缓存同步;第二篇则是总结了常见的支持多线程的语言中同步设施(内存模型)的设计;第三篇则讲述了 Go 的内存模型,Go 的内存模型已经于去年正式发布。