Как мне показать значение #define во время компиляции? - PullRequest
106 голосов
/ 13 октября 2009

Я пытаюсь выяснить, какую версию Boost использует мой код. Я хочу сделать что-то вроде этого:

#error BOOST_VERSION

но препроцессор не раскрывает BOOST_VERSION.

Я знаю, что мог бы распечатать его во время выполнения из программы, и я знаю, что мог бы посмотреть на вывод препроцессора, чтобы найти ответ. Я чувствую, что способ сделать это во время компиляции может быть полезным.

Ответы [ 13 ]

1 голос
/ 13 октября 2009

Посмотрите также на документацию Boost относительно того, как вы используете макрос:

В отношении BOOST_VERSION, от http://www.boost.org/doc/libs/1_37_0/libs/config/doc/html/boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.boost_helper_macros:

Описывает номер версии буста в Формат XXYYZZ такой, что: (BOOST_VERSION % 100) является второстепенным версия, ((BOOST_VERSION / 100) % 1000) является второстепенной версией, и (BOOST_VERSION / 100000) является основным версия.

1 голос
/ 13 октября 2009

BOOST_VERSION определяется в файле заголовка надстройки version.hpp.

1 голос
/ 13 октября 2009

Вы могли бы написать программу, которая печатает BOOST_VERSION, скомпилировать и запустить ее как часть вашей системы сборки. В противном случае, я думаю, вам не повезло.

...