Boost.Preprocessor是自包含的吗?

时间:2011-01-25 18:54:33

标签: boost-preprocessor

我正在考虑在某个项目中使用Boost.Preprocessor,但我不想让整个Boost库成为依赖项。

我可以单独复制并侥幸逃脱吗?否则,它的依赖性是什么?

2 个答案:

答案 0 :(得分:4)

新答案

我刚刚bcp工作:

./bcp --list preprocessor --boost=/usr/local/include/boost_1_45_0/ | grep -v preprocessor

  

未检测到错误

没有grep我得到类似的东西:

  

升压/ preprocessor.hpp
  升压/预处理/ arithmetic.hpp
  升压/预处理/算术/ add.hpp
  升压/预处理/算术/ dec.hpp
  升压/预处理/算术/细节/ div_base.hpp
  升压/预处理/算术/ div.hpp
  升压/预处理/算术/ inc.hpp
  升压/预处理/算术/ mod.hpp
  升压/预处理/算术/ mul.hpp
  boost / preprocessor / arithmetic / sub.hpp


原始答案

尝试使用boost bcp实用程序进行复制

我做了一个快grep -R "include" /usr/include/boost/preprocessor/* | grep -v preprocessor并没有提出任何比赛。我本可以发誓需要配置。

编辑(我的grep-ful很弱= /) grep -rh "include" /usr/include/boost/preprocessor/* | grep -v preprocessor | sort |uniq

  

#error BOOST_PP_ERROR:没有要包含的间接文件
   #include BOOST_PP_FILENAME_1
   #include BOOST_PP_FILENAME_1
   #include BOOST_PP_FILENAME_2
   #include BOOST_PP_FILENAME_2
   #include BOOST_PP_FILENAME_3
   #include BOOST_PP_FILENAME_3
   #include BOOST_PP_FILENAME_4
   #include BOOST_PP_FILENAME_4
   #include BOOST_PP_FILENAME_5
   #include BOOST_PP_FILENAME_5
   #include BOOST_PP_INDIRECT_SELF

grep -rhE "define\\s+BOOST_PP_FILENAME" /usr/include/boost/preprocessor/* | sort |uniq

  

#define BOOST_PP_FILENAME_1 BOOST_PP_ARRAY_ELEM(2,BOOST_PP_ITERATION_PARAMS_1)
   #define BOOST_PP_FILENAME_2 BOOST_PP_ARRAY_ELEM(2,BOOST_PP_ITERATION_PARAMS_2)
   #define BOOST_PP_FILENAME_3 BOOST_PP_ARRAY_ELEM(2,BOOST_PP_ITERATION_PARAMS_3)
   #define BOOST_PP_FILENAME_4 BOOST_PP_ARRAY_ELEM(2,BOOST_PP_ITERATION_PARAMS_4)
   #define BOOST_PP_FILENAME_5 BOOST_PP_ARRAY_ELEM(2,BOOST_PP_ITERATION_PARAMS_5)

BOOST_PP_ITERATION_PARAMS_#似乎不是#defined。奇怪的是,它们在{/detail/iter/forward#.hpp中被#undef编辑,所以我可能错过了一些嵌套的宏或其他......

答案 1 :(得分:0)

http://www.boost.org/doc/libs/1_45_0/所述,预处理器是一个仅头文件库。不需要运行时库。