旧版本的{fmt}支持C++98吗?

问题描述 投票:0回答:1

我使用旧版编译器 (C++98),并希望使用 {fmt} 将字符串格式化为 std::ostream。是否有适用于 C++98 的 {fmt} 版本,或者 C++11 一直是必需的?

我尝试使用 godbolt,将 -std=c++98 添加到编译标志,使用 GitHub 中最旧的标签,并得到一个非常具体的错误:

错误:#error 此文件需要编译器和库支持 ISO C++ 2011 标准。必须使用 -std=c++11 或 -std=gnu++11 编译器选项启用此支持。

c++ c++98 fmt
1个回答
1
投票

{fmt} 4.1 是支持 C++98 的最后一个版本。从版本 5.0 {fmt} 开始,需要 C++11 的子集,引用 发行说明:

添加了对部分 C++11 支持的要求,最重要的是可变参数模板和类型特征,并删除了

FMT_VARIADIC_*
模拟宏。自 GCC 4.4、Clang 2.9 和 MSVC 18.0 (2013) 起,可变参数模板可用。对于较旧的编译器,请使用 {fmt} 版本 4.x,该版本将继续维护并与 C++98 编译器一起使用。

© www.soinside.com 2019 - 2024. All rights reserved.