关于三法则: 若析构函数、拷贝构造函数、赋值操作符三者自定义其一,则需要同时定义另外两个(编译器自动生成的一般…
作者: mindthink
C++ 绑定规则
左值可以绑定到左值引用 左值不可以绑定到右值引用 右值可以绑定到左值常量引用 右值可以绑定到右值非常量引用 &…
C++ 中的左值与右值
左值:命名对象、可取地址&,可赋值 基本类型变量、数组、数组元素 字符串字面量,如“CppCamp” …
C++ Prototype 模式实现
Prototype模式允许我们通过克隆现有对象来创建新对象,而无需依赖其具体类。这样做可以避免与对象复杂的构造…
C++ Builder 模式实现
#include <iostream> #include <string> // Pi…
C++ 抽象工厂模式
#include <iostream> class IElevator { public: vir…
C++ 单例模式实现
class Singleton { public: static Singleton& getInst…
C++ API 设计
infinity: 一个 AI Native 的数据库
github 链接 关于 infinity Infinity is a cutting-edge AI-nat…
C++20特性之三路比较操作符
在C++20中,引入了一个新的运算符,称为“三路比较操作符”或“太空船操作符”,其符号为 <=>。…
空基类优化(EBO)
c++ 有些类是空的,这意味着这些类应该只包含类型成员、非虚函数或静态成员函数,只要存在非静态成员函数、虚函数…
关于 type traits
// 关于 type_traits的几个例子(主要来自《C++20高级编程》) #include <io…
SFINAE (Substitution Failure Is Not An Error)
SFINAE (Substitution Failure Is Not An Error) 是 C++ 模板元…
C++ 中的四种类型转换(cast)
static_cast 动机 在 C++ 引入之前,C 语言的转换是通过简单的类型转换实现的,这种转换既不安全…
内存管理器: ptmalloc vs tcmalloc vs jemalloc
内存管理器在程序设计中扮演着关键角色,负责分配、跟踪和释放程序运行时使用的内存。本文将对三种流行的内存管理器:…