fmt:为 C++ 提供安全、现代的文本格式化能力
一分钟看懂
fmt 是一个 C++ 格式化与输出库,也是 C++20 std::format 和 C++23 std::print 设计的重要基础。它用类型安全的格式字符串替代传统 printf 与较繁琐的 iostream 写法。
你可以用它做什么
- 格式化字符串、数字、日期时间、容器和自定义类型。
- 向标准输出或文件打印文本,并设置颜色与样式。
- 在旧版编译器或标准库实现不完整时获得一致的现代格式化接口。
主要能力
- 支持位置参数、Unicode、范围类型和用户自定义类型。
- C++20 环境下可在编译期发现部分格式字符串错误。
- 可作为普通编译库使用,也可通过
FMT_HEADER_ONLY采用仅头文件方式。 - 官方说明其核心代码体积较小,并持续进行测试与模糊测试。
适合哪些人
适合维护 C++ 应用、基础库、日志系统和跨平台工具的开发者,也适合希望逐步从 printf 或 iostream 迁移到现代格式化接口的团队。
怎么开始使用
优先按官方文档通过系统包管理器、CMake 或源码依赖引入 fmt。最小用法是包含 <fmt/base.h>,然后调用 fmt::print 或 fmt::format。生产项目应固定正式发布版本。
使用前需要知道
项目采用 MIT 许可证。若目标环境已经完整支持 std::format,应先评估是否仍需额外依赖;仅头文件模式会改变编译时间和二进制体积,需要在实际工程中测量。