ev-spdlog-lambda-registry-001¶
| 字段 | 值 |
|---|---|
| 项目 | gabime/spdlog |
| 固定 commit | 79524ddd08a4 |
| 路径 | include/spdlog/details/registry.h |
| 行段 | L67-L72 |
| 特性 | lambda 表达式 |
| 许可证 | MIT |
| 代码来源 | 项目源码 |
| 级别 | manual |
| 审核 | zyuhao7 @ 2026-10-27 |
| 测试代码 | 否 |
| 发现方式 | manual |
用法¶
用捕获 this 的 lambda 把刷新动作交给周期任务
为什么典型¶
lambda 把成员调用包装成无参可调用对象,避免为一次性回调声明具名函数或仿函数。
摘录¶
template <typename Rep, typename Period>
void flush_every(std::chrono::duration<Rep, Period> interval) {
std::lock_guard<std::mutex> lock(flusher_mutex_);
auto clbk = [this]() { this->flush_all(); };
periodic_flusher_ = details::make_unique<periodic_worker>(clbk, interval);
}
备注¶
生产路径;捕获 this 后转为 std::function 存入 periodic_worker。