C++ 悬垂引用与 lambda 捕获:语法上最省事,出事时最难查

Posted on 六 05 9月 2026 in Tech • Tagged with tech, C++, memory, reference, lambda, dangling, sanitizer, modern-cpp

引用和 lambda 捕获是 C++ 里最省事的两个语法,也是最容易悄悄出事的两个。悬垂引用在使用处和普通变量一模一样,还没有"空"这个状态可判;[=] 看着像全按值拷,其实按指针捕了 this。本文用九个能编译运行的实例,讲清悬垂引用的四种来源、lambda 捕获的五种误用、什么时候该用引用什么时候不该用,附一张捕获速查表和检查清单。


Continue reading

C/C++ 内存管理方法的变迁:把纪律写进类型系统

Posted on 五 04 9月 2026 in Tech • Tagged with tech, C, C++, memory, RAII, smart-pointer, modern-cpp

从 malloc/free 到 unique_ptr,再到 span 与 pmr,C/C++ 三十年的内存管理演进有一条清晰的主线:把原来只能靠人记住的纪律,一点点搬进类型系统,让编译器去查。本文按 C、C++98、C++11、C++17/20 四个阶段讲清各自的特点与难点,配可编译运行的实例、最佳实践、常见陷阱和一张检查清单。


Continue reading