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

PLA*_*G0N 2 c++ json c++17

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

Nic*_*las 8

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

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

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