深入理解 enable_shared_from_this

shared_ptr是一种共享所有权的智能指针,它允许我们安全地访问和管理对象的生命周期。shared_ptr的多个实例通过共享控制块结构来控制对象的生命周期。

Expression Templates

介绍 Expression Templates 的基本思路,以及它如何通过延迟求值减少中间对象和额外开销。

c++17:constexpr if

constexpr 是 c++11 引入的关键字,用于编译时常量和常量表达式。而 c++17 将这一特性做了增强,引入了 constexpr if。

c++20:Designated Initializers

对于熟悉 c99 的人来说,Designated Initializers 并不算是什么新鲜事物,然而 c++直到 c++20 才正式支持这一特性。

Linux磁盘IO

从用户态缓冲区到持久化存储,梳理 Linux 磁盘 I/O 的完整路径与各层刷盘机制。

c++元编程之遍历tuple

对于一个标准的 c++容器来说,我们可以很容易在运行时使用迭代器和 range-based for。

c++17:string_view

std::string_view是 c++17 中新增的一种类型。其核心理念是,能够让我们在传统的 C++03 风格的具体性和泛型编程之间找到一个很好的折衷点。

分布式协议

从拜占庭将军问题讲起,梳理分布式系统中的共识模型,以及 Paxos 和 Raft 的基本思想。

Spring Boot With BDD

BDD(Behavior Driven Development),行为驱动开发,是一种敏捷软件开发的技术,它鼓励软件项目中的开发者、QA 和非技术人员或商业参与者之间的协作。

多线程编程

这篇文章主要是为了帮助大家熟悉 POSIX 线程库以及在实际开发中使用它的特性。我们会具体讲解如何利用这个线程库定义的不同工具。

c++编程之操作符重载

介绍 C++ 操作符重载的基本规则、常见场景,以及运算符语义设计时需要注意的边界。

c++编程之继承和多态

超类(基类)和子类(派生类):在面向对象程序设计中,我们通常使用继承来避免代码冗余。在 C++中,继承的语法规则如下。