如果启用BOOST,如何检入我的代码?

时间:2014-09-24 14:28:39

标签: c++ boost

我希望启用代码的某些部分,只有安装了boost。

我找到this回答,this回答。但是,它们用于确定boost的版本。

那么这样的事情会完全安全吗?

#if BOOST_VERSION
  // boost code
#endif

如果没有,我应该怎么做?

1 个答案:

答案 0 :(得分:4)

您需要创建自己的宏来进行条件编译(或者使用您的构建系统以某种方式控制它)。例如:

#ifdef MYPROJ_HAS_BOOST
#  include <boost/filesystem.hpp>
#endif

然后用-DMYPROJ_HAS_BOOST(或不是)编译。

你不能依赖BOOST_VERSION或其他来自Boost的东西,因为你不知道你是否有Boost。您可以在没有Boost的系统上创建一个假的<boost/version.hpp>头文件,但这有点奇怪,并且没有比制作自己的项目特定的宏更好。

有些编译器会让你#include <boost/version.hpp,只会在没有找到时发出警告;这可能有用,但会在没有Boost的系统上发出危险的警告,甚至可能彻底失败。