宏 – 如何在编译时显示#define的值?

我试图找出什么版本的Boost我的代码认为它使用。我想做这样的事情:

#error BOOST_VERSION

但预处理器不会扩展BOOST_VERSION。

我知道我可以从程序中运行时打印出来,我知道我可以看看预处理器的输出找到答案。我觉得有一种方法在编译期间这样做可能是有用的。

如果你使用Visual C,你可以使用#pragma message:

#include <boost/preprocessor/stringize.hpp>
#pragma message("BOOST_VERSION=" BOOST_PP_STRINGIZE(BOOST_VERSION))

编辑:感谢LB的链接

显然,GCC等价物(未测试):

#pragma message "BOOST_VERSION=" BOOST_PP_STRINGIZE(BOOST_VERSION)
http://stackoverflow.com/questions/1562074/how-do-i-show-the-value-of-a-define-at-compile-time

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:宏 – 如何在编译时显示#define的值?