C++ 学习笔记:泛型函数(函数模板)从基础到进阶
学习笔记 · C++ 泛型编程主题:函数模板的语法、类型推导、实例化、转发、特化、SFINAE、变参模板到 C++20 概念0.
线程池的三种死法:死锁与饥饿复现
线程池的三种死法:死锁与饥饿复现1. 背景与问题定义线程池是 C++ 服务端并发编程的基础设施,通过复用线程降低创建销毁开销、限制资源使用。
C++去虚拟化:PGO热路径优化实战
去虚拟化实战:用 PGO 与 speculative devirtualization 让虚调用在热路径上消失1. 背景与问题定义虚函数调用的真实成本很多开发者对虚函数调用的印象停留在“多一次间接寻址”,即通过 vptr 找到 vtable,再从 vtable 中取出函数指针。
【C++ 模板进阶】非类型模板参数、模板特化与分离编译一次讲透
C++ 模板进阶:非类型模板参数、模板特化与分离编译一次讲透哈喽大家好,前面咱们聊完了 STL 的容器,这篇回到 C++ 语言本身,啃一啃模板的三个进阶话题:非类型模板参数、模板特化、模板分离编译。这三块是面试高频区,也是很多人"看着眼熟、一写就错"的地方。
C++ CRTP:用编译期多态省掉虚函数表
你有没有试过为了性能把 virtual 删掉,结果多态直接失灵?其实 C++ 里有个叫 CRTP 的老把戏,能让你连虚函数表一起省掉,多态照样跑——但它有个新手必踩的坑。 先说它解决了啥多态好用,但虚函数不是免费的。
C++20 并发新原语:counting_semaphore 与 binary_semaphore
0.引言 C++ 标准库在并发支持方面一直稳步演进。
C++代码实现MATLAB中的smote函数功能
#include #include #include #include #include #include // =====================
C++开发必看!抛弃虚接口继承,编译期模板方案零开销解决烂代码
一、无数程序员踩坑的C++代码烂根,终于被根治做C++开发的程序员,几乎都遇到过万能膨胀类的噩梦。一个原本功能单一、逻辑清晰的核心类,随着版本迭代不断新增字段、堆砌方法,从单一职责的工具类,慢慢变成堆砌所有业务逻辑的“上帝类”。
引用活着、迭代器作废:deque 两端插入的规矩
拿住 std::deque 第一个元素的引用,往两头各塞 1000 个数——引用还稳稳指着那个 42;同样的事放在 vector 上,整块数组早就搬家了 #include #include #include #includ