如何在我的代码检查是否启用BOOST?(How to check in my code if BOO

2019-10-21 01:24发布

我想我的代码的某些部分启用,只有安装了提升。

我找到这个答案, 这一个。 然而,他们是为了确定升压的版本。

所以将这样的事情是完全安全的?

#if BOOST_VERSION
  // boost code
#endif

如果不是这样,我应该怎么办呢?

Answer 1:

你需要让自己的宏做条件编译(或构建系统以某种方式控制它)。 例如:

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

然后用编译-DMYPROJ_HAS_BOOST (或没有)。

你不能靠BOOST_VERSION或从任何其他升压,因为你不知道你是否有提升。 你可以做一个假<boost/version.hpp>头在哪里你没有升压系统文件,但是这有点怪异和不超过使自己的特定项目的宏更好。

一些编译器将让你#include <boost/version.hpp且仅当它没有找到警告; 这可以工作,但会给出一个危险的前瞻性的系统警告不加速,甚至可能彻底失败。



文章来源: How to check in my code if BOOST is enabled?
标签: c++ boost