跳转至

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 而非引用或裸指针,调用方复制后仍能安全使用。

查看固定 commit 源码 · 返回证据索引