通过一个最小示例介绍如何使用 LLVM libFuzzer 构建模糊测试,并定位程序中的崩溃问题。
在C/C++中,我们经常会像下面的代码那样使用一个指向函数的指针,我们称之为函数指针。
利用 std::list::splice 的常数时间节点移动能力,实现一个高效的 LRU Cache。
c++11 对智能指针做了很大的优化,废弃了 c++98 中的auto_ptr,引入了三种新的智能指针:unique_ptr,shared_ptr,weak_ptr。
介绍 Expression Templates 的基本思路,以及它如何通过延迟求值减少中间对象和额外开销。
对比 C++ 中基于虚函数表的动态多态与模板驱动的静态多态,理解两者的实现原理与取舍。
constexpr 是 c++11 引入的关键字,用于编译时常量和常量表达式。而 c++17 将这一特性做了增强,引入了 constexpr if。
对于熟悉 c99 的人来说,Designated Initializers 并不算是什么新鲜事物,然而 c++直到 c++20 才正式支持这一特性。
对于一个标准的 c++容器来说,我们可以很容易在运行时使用迭代器和 range-based for。
std::string_view是 c++17 中新增的一种类型。其核心理念是,能够让我们在传统的 C++03 风格的具体性和泛型编程之间找到一个很好的折衷点。