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 后移交。