婴儿的第二个垃圾回收器

2024-11-23

本文介绍了婴儿的第二个垃圾回收器,是对经典垃圾回收教程的改进。文章重点讲解了复制式垃圾回收器的实现,并通过图示详细解释了Cheney算法的步骤。该算法将内存分为两个区域,将活动区域中的存活对象复制到非活动区域,然后清除活动区域。文章还讨论了复制式垃圾回收器的优缺点,例如减少碎片、降低活动对象的工作量,但也存在空间利用率减半、无法处理析构函数和指针不稳定的问题。

阅读更多

C++ Mixins 的一个想法

2024-11-22

本文探讨了在 C++ 中使用 Mixins 的一种思路,类似 Rust 的 trait 和 C++ concept,旨在改进代码复用和框架设计。作者提出了一种基于 CRTP(奇异递归模板模式)的 Mixin 实现方案,并以 Clone trait 为例进行了说明。该方案允许在编译时检查类是否实现了特定接口,并能避免虚函数表带来的开销。作者还讨论了如何利用该方案实现类似 Rust 的关联类型和侵入式引用计数。虽然 C++ 标准库中的 concept 已具备类似功能,但作者认为这种方案仍然具有一定的价值,尤其是在早期 C++ 版本中。

阅读更多
未分类 Mixin CRTP