Вы не определяете то, что на самом деле делает кнопка. Это - строка из моего приложения:
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelEdit:)];
cancelEdit:
, селектор, находится в текущем классе (сам) и определяется как:
- (void) cancelEdit: (id) sender;
Если вы используете 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)
Насколько я знаю ' #error 'будет печатать только строки, на самом деле вам даже не нужно использовать кавычки .
Вы пробовали писать различные целенаправленно неправильные коды с помощью «BOOST_VERSION»? Возможно, что-то вроде "blah [BOOST_VERSION] = foo;" сообщит вам что-то вроде «строковый литерал 1.2.1 не может использоваться как адрес массива». Это не будет красивое сообщение об ошибке, но, по крайней мере, он покажет вам соответствующее значение. Вы можете поиграть, пока не найдете ошибку компиляции, которая сообщает вам значение.
Вы также можете предварительно обработать исходный файл и посмотреть, что оценивает значение препроцессора.
Вы ищете
#if BOOST_VERSION != "1.2"
#error "Bad version"
#endif
Не замечательно, если BOOST_VERSION является строкой, как я предполагал, но также могут быть отдельные целые числа, определенные для основного, вспомогательного номера и номера версии.
Вы можете написать программу, которая выводит BOOST_VERSION
, скомпилировать и запустить ее как часть вашей системы сборки. В противном случае, я думаю, вам не повезло.
Просмотр вывода препроцессора - это наиболее близкий к ответу, который вы запрашиваете.
Я знаю, что вы исключили этот (и другие способы), но я не уверен Почему. У вас есть достаточно конкретная проблема, которую нужно решить, но вы не объяснили, почему ни один из «обычных» методов вам не подходит.
Также ознакомьтесь с документацией по Boost, чтобы узнать, как вы используете макрос:
BOOST_VERSION определяется в файле заголовка повышения version.hpp.