
类模板
priority_queue默认是最大堆,顶部元素为最大值;其默认比较器为std::less,即a
using比typedef更通用,尤其在模板场景下不可替代;C++11引入using主要为解决模板类型别名问题,typedef不支持模板参数,而using可定义泛型别名如templateusingVe...
不能直接用std::function+std::vector存槽函数,因裸指针无法感知被观察对象生命周期,导致析构后调用引发未定义行为;安全方案是用std::weak_ptr+std::shared_...
alignof返回类型自然对齐所需的字节数(2的幂),非sizeof;alignas强制指定对齐(须为2的幂且不小于默认值),影响内存布局与性能。
静态多态在编译期绑定,无运行时开销,靠重载、模板和CRTP实现;动态多态在运行期绑定,依赖虚函数和vtable,有间接跳转开销。CRTP通过派生类作模板参数使基类编译期获知具体类型,支持零成本静态分发...
typetraits是C++编译期类型元编程基础设施,基于模板特化与SFINAE实现,提供判断(is_)、变换(_t)和辅助(void_t)三类工具,用于静态类型探测与约束。
因为阶乘结果在编译期就能确定,用模板元编程可避免运行时调用开销、支持constexpr上下文并触发常量折叠,但受编译器递归深度限制;C++11需类模板+全特化,C++14起可用变量模板或constex...
SFINAE指模板替换失败不报错而仅从候选集剔除,用于编译期类型判断;C++17后推荐ifconstexpr替代部分场景,C++20概念(concepts)提供更清晰安全的约束机制。
C++模板的核心作用是在编译期生成类型专属的代码副本,从而兼顾类型安全与零运行时开销;它通过实例化机制避免void*和宏的缺陷,支持SFINAE、concepts等约束,并依参数类型生成不同实现。
std::executionSender/Receiver是比协程更底层的异步原语,不依赖栈切换与隐式挂起,提供编译期可组合、类型安全、无栈无分配、显式错误传递的标准化异步抽象,支持跨生态互操作。