
局部变量
用std::function实现Command更轻量,因其无需定义命令类继承体系,可直接捕获lambda、函数或成员函数;可撤销Command需同时存储execute_fn和undo_fn两个std:...
Go不支持传统函数嵌套,但可通过匿名函数赋值实现闭包;闭包捕获变量而非复制值,循环中易因共享变量引发陷阱。
decltype(auto)保留引用和cv限定符,auto则剥离顶层const、volatile及引用;前者复刻表达式decltype结果,后者总推导为值类型,典型用于转发引用避免拷贝。
ThreadStatic在async/await中会丢失值,因其仅绑定物理线程且不参与ExecutionContext流转;AsyncLocal则通过ExecutionContext自动传播,适用于请...
UBSan是LLVM/Clang和GCC提供的运行时未定义行为检测工具,可捕获整数溢出、空指针解引用、数组越界、未初始化变量使用、违反严格别名等UB;需编译链接时启用-fsanitize=undefi...
Go测试文件须命名为_test.go且与源码同包;测试函数需以Test开头、接收testing.T参数;推荐表驱动测试和t.Run子测试,注意资源隔离与错误传播。
ClangPowerTools不支持语义级交互式重构,仅提供基于AST模式匹配的批量代码转换,如循环改写、命名规则替换等,无法识别作用域、模板或宏语义,故不能替代VisualStudio原生重构功能。
defer在循环中显著拖慢执行,因每次调用均分配_defer结构体并维护链表,高频场景下引发大量小对象分配与调度开销;应改用显式调用或抽离为独立函数统一defer。
Go中goroutine启动后不阻塞主函数,主函数退出则所有goroutine强制终止;需用sync.WaitGroup等待或time.Sleep临时观察,且循环中传参避免闭包陷阱;channel使用...
static在C++中有三重语义:修饰局部变量时延长生命周期但不扩大作用域;修饰全局/命名空间变量或函数时控制内部链接性;修饰类成员时使其脱离实例绑定。