Skip to content
败犬日报 2025-11-27

败犬日报 2025-11-27

1. 使用 spdlog 有全局变量析构顺序问题

你有一个全局变量,这个变量的析构函数里打了一行 spdlog::info(),这样就有可能 spdlog 全局变量先于你的变量释放(C++ 不保证全局变量析构顺序),于是就 core 了。

2. 局部变量同时用 static local_thread,static 是多余的

往期的代码里用了 static local_thread 局部变量,现已修改,在这里强调一下。

3. std::ranges::filter_view::begin() 会缓存结果

往期提到这个问题 的第一个代码。

这是因为 begin() 要求是均摊常数复杂度,如果只有最后一个元素满足要求,每次 begin() 都是 O(n) 不满足要求。

可以转 input_range 来解决,在 C++26 可以通过 views::to_input(有可能改名为 as_input)做到。

4. views::iota 迭代器的 difference_type 问题

往期提到这个问题 的第二个代码。

也可以通过 C++26 的 views::indices 解决。