正在加载一言...

Ciel's Paperplane

如果您发现什么地方描述有误,请在 github issue 上提出

Ciel's Paperplane

如果您发现什么地方描述有误,请在 github issue 上提出

C++ 以引用计数器的不同实现介绍一下无阻塞算法

本文参考自 Daniel Anderson 的 CppCon 演讲 https://www.youtube.com/watch?v=kPh8pod0-gk 与 Michael Scott 的...

C++ std::vector 的各种实现细节

1. 分配器 (1) 空基类优化 std::vector 的内部需要存储一个分配器,而默认分配器 std::allocator 是一个空类,所以需要 EBO。需要注意的是很多标准库(比如...

C++ noexcept 有何奇用之 GNU libstdc++ unordered 容器的天才与逆天并存的哈希表内存布局设计

本文参考自 Arthur O’Dwyer 的博客:https://quuxplusone.github.io/blog/2024/08/16/libstdcxx-noexcept-hash/...

C++ 为什么各大标准库的 std::vector::iterator 不直接用 T*?

本文参考自 Arthur O’Dwyer 的博客:https://quuxplusone.github.io/blog/2022/03/03/why-isnt-vector-iterator...

C++ 关于 CRTP 的几种惯用法

0. 简介 奇特重现模板模式(Curiously Recurring Template Pattern, CRTP)是一种惯用手法。它最关键的特征在于基类 Base 有一个模板参数 D,指...

C++ 关于 `return x;` 你需要了解的一点知识之返回值优化

本文参考自 Arthur O’Dwyer 的 CppNow 演讲:https://www.youtube.com/watch?v=OGKAJD7bmr8 本文只是对 RVO 做一个简单的介...

C++ 从 libc++ 的 std::expected 内存布局实现讲一下空基类优化

本文前置知识见 C++ 生命周期与内存对齐与小缓冲区优化 0. std::expected 的内存布局行为 首先 std::expected<T, E> 是 C++23 的一...

C++ lambda 与 std::function 与类型擦除

本文还未完成。 1. lambda (1) 简介 首先 lambda 是一个重载了 operator() 的类的语法糖,有一个网站 C++ Insights 就可以看到它的具体情况。 ...

C++ 生命周期与内存对齐与小缓冲区优化

由于 C++ 生命周期相关的概念非常复杂且一直处于不完善持续更新的阶段,本文只是为了博客之后的话题而尽量简单且无法保证完全严谨地介绍一下相关知识。 1. 对象大小与对齐 对于任何一个类型...

C++ 从 std::shared_ptr 引用计数的实现浅析 std::memory_order

本文前置知识见 [C++] 一点点 std::shared_ptr 的实现细节 1. 开篇 文档可见:std::memory_order - cppreference.com 首先我们...