是否可以使用较旧的 c++ 版本的 c++ 库?

时间:2021-05-10 18:19:48

标签: c++ json c++17

所以我尝试使用 JSON 作为我的 C++ 项目的文件格式。但是我找不到 C++17 的库。有一些 (nlohmann/json,RapidJSON) 用于旧版本,例如 C++11,但我不知道是否可以使用旧版本。我可以这样做吗?

1 个答案:

答案 0 :(得分:8)

C++ 版本在很大程度上向后兼容以前的版本。任何不兼容(通常)都是出于特定目的,并带有某种程度的弃用等。

从广义上讲,C++11 库(仅标头或已编译)将在 C++17 编译器下编译。有时这会失败,但通常是针对特定的库类型(例如 std::auto_ptr 或类似的)。

对于已编译的库,ABI 可能是一个问题(这意味着您可能需要重新编译它们,这需要源代码)。但是对于只有头文件的库,这不是问题,因为您总是编译它们。