我想我的代码的某些部分启用,只有安装了提升。
我找到这个答案, 这一个。 然而,他们是为了确定升压的版本。
所以将这样的事情是完全安全的?
#if BOOST_VERSION
// boost code
#endif
如果不是这样,我应该怎么办呢?
我想我的代码的某些部分启用,只有安装了提升。
我找到这个答案, 这一个。 然而,他们是为了确定升压的版本。
所以将这样的事情是完全安全的?
#if BOOST_VERSION
// boost code
#endif
如果不是这样,我应该怎么办呢?
你需要让自己的宏做条件编译(或构建系统以某种方式控制它)。 例如:
#ifdef MYPROJ_HAS_BOOST
# include <boost/filesystem.hpp>
#endif
然后用编译-DMYPROJ_HAS_BOOST
(或没有)。
你不能靠BOOST_VERSION
或从任何其他升压,因为你不知道你是否有提升。 你可以做一个假<boost/version.hpp>
头在哪里你没有升压系统文件,但是这有点怪异和不超过使自己的特定项目的宏更好。
一些编译器将让你#include <boost/version.hpp
且仅当它没有找到警告; 这可以工作,但会给出一个危险的前瞻性的系统警告不加速,甚至可能彻底失败。