Boost中的此更改导致某些标头文件位置发生变化:https://github.com/boostorg/property_tree/commit/ea940990691de91e9b22255d9b450fcdac237646
我正在开发一个代码库,其中一些用户使用旧版本的boost进行构建,其中包含旧的标头位置,例如#include <boost/property_tree/detail/json_parser_error.hpp>
代替较新的#include <boost/property_tree/json_parser/error.hpp>
。我希望保持与旧版(1.61之前版)和更新版增强版的兼容性。
有没有办法指示编译器检查boost版本,如果版本&gt; = 1.61,则使用新的header include
答案 0 :(得分:4)
我认为您正在寻找BOOST_VERSION
预处理器。它在boost\version.hpp
//注意,这是唯一一个保证的升级头 //随每个提升版本改变,包括此标题
//每次新的升级版本时都会重新编译 //释放。
//
// BOOST_VERSION%100是补丁级别
// BOOST_VERSION / 100%1000是次要版本
// BOOST_VERSION / 100000是主要版本
简单的用法是:
#if BOOST_VERSION >= 106100
#include <this.hpp>
#else
#include <that.hpp>
#endif