
成员变量
std::vector+std::optional不适合高频对象池,因其每次emplace/reset都触发构造/析构,违背绕过生命周期开销的核心目标;高性能池须用std::aligned_stora...
C++函数不能直接导出为CAPI,因namemangling导致符号不一致,且C++特性(如类、模板、STL)破坏CABI稳定性;必须用opaquepointer、extern"C"...
Passbyvalue,thenmove是一种C++11后推荐的参数传递惯用法:函数参数按值传入(Tx),再用std::move(x)赋值给成员;它统一处理左值(拷贝构造)和右值(移动构造),避免重载...
UE5默认C++17,禁用std::unique_ptr管理UObject因GC冲突;C++20仅限非UCLASS模块;范围for需用const引用避免拷贝;蓝图函数参数须用TArray/TMap而非...
构造函数初始化列表能绕过默认构造+赋值的双重开销,直接调用目标类型构造函数;const成员、引用、无默认构造的基类必须用初始化列表;初始化顺序严格按声明顺序而非列表顺序。
constexpr函数仅在参数为编译期常量时才执行编译期计算,否则退化为普通函数调用;constexpr变量必须用常量表达式初始化;constexpr构造函数要求所有成员明确初始化;consteval...
ClangPowerTools不支持语义级交互式重构,仅提供基于AST模式匹配的批量代码转换,如循环改写、命名规则替换等,无法识别作用域、模板或宏语义,故不能替代VisualStudio原生重构功能。
std::function_ref是零开销、非拥有、类型擦除的只读回调视图,内部仅存void*和函数指针,不分配内存、不复制可调用体,但不管理生命周期,误用将导致悬垂引用或未定义行为。
Clang++启用MemorySanitizer需用clang6.0编译链接,关键选项:-fsanitize=memory-fPIE-pie-O1及以上-g;运行时检测未初始化读,需手动__msan_...
PlacementNew是operatornew的重载形式,跳过内存分配仅执行构造;普通new则先分配内存再构造。必须用于对象池、嵌入式系统、自定义容器、序列化等需精细控制内存与生命周期的场景。