ev-spdlog-shared-ptr-registry-002¶
| 字段 | 值 |
|---|---|
| 项目 | gabime/spdlog |
| 固定 commit | 79524ddd08a4 |
| 路径 | include/spdlog/details/registry-inl.h |
| 行段 | L86-L90 |
| 特性 | std::shared_ptr 与 std::weak_ptr |
| 许可证 | MIT |
| 代码来源 | 项目源码 |
| 级别 | manual |
| 审核 | zyuhao7 @ 2026-10-30 |
| 测试代码 | 否 |
| 发现方式 | manual |
用法¶
用 shared_ptr 返回注册表中的 logger,共享同一实例
为什么典型¶
多个调用点需要持有同一 logger 并各自复制句柄;shared_ptr 让引用计数自动决定析构时机。
摘录¶
SPDLOG_INLINE std::shared_ptr<logger> registry::get(const std::string &logger_name) {
std::lock_guard<std::mutex> lock(logger_map_mutex_);
auto found = loggers_.find(logger_name);
return found == loggers_.end() ? nullptr : found->second;
}
备注¶
生产路径;返回 shared_ptr 而非引用或裸指针,调用方复制后仍能安全使用。