Skip to content

败犬日报 2025-03-11

1. std::bind 建议用 lambda 替代

更简单且调用栈少。

2. std::function_ref (C++26)

std::function_ref 调用开销相当于函数指针(std::function 调用开销相当于虚函数)。

这个东西在低版本可以自己实现 https://zhuanlan.zhihu.com/p/638531531

3. 静态链接符号未找到,但目标文件有这个符号

是链接顺序的问题。在往期提到这个现象:

主程序没引用静态库里面的符号,可能导致静态库整个被丢弃,里面的全局变量初始化的副作用也会没

可以用 --whole-archive 来临时规避,但是会导致二进制膨胀问题。

最佳实践是 --start-group --end-group

https://stackoverflow.com/questions/52435705/whats-difference-between-start-group-and-whole-archive-in-ld