跳转至

ev-spdlog-unique-ptr-formatter-002

字段 值
项目 gabime/spdlog
固定 commit 79524ddd08a4
路径 include/spdlog/spdlog-inl.h
行段 L23-L30
特性 std::unique_ptr
许可证 MIT
代码来源 项目源码
级别 manual
审核 zyuhao7 @ 2026-10-30
测试代码 否
发现方式 manual

用法

用 unique_ptr 参数转移格式化器的所有权

为什么典型

API 接收 unique_ptr 并按值移入注册表,调用方无法继续持有同一对象,所有权边界由类型系统保证。

摘录

SPDLOG_INLINE void set_formatter(std::unique_ptr<spdlog::formatter> formatter) {
    details::registry::instance().set_formatter(std::move(formatter));
}

SPDLOG_INLINE void set_pattern(std::string pattern, pattern_time_type time_type) {
    set_formatter(
        std::unique_ptr<spdlog::formatter>(new pattern_formatter(std::move(pattern), time_type)));
}

备注

生产路径;set_formatter 用 move 传递独占所有权,set_pattern 直接构造 unique_ptr 后移交。

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