Код имеет ряд следующих разделов:
int filter;
#ifdef INPUTFILTER_FOO
LOG4CXX_DEBUG(log, "FOO filter used");
filter = F_FOO;
#endif
Они используются в коде несколько раз (используются для обеспечения ввода-вывода, поддержки потоков и т. Д. Для всех тестируемых конфигураций). Приблизительно они необходимы для отладки, но делают код грубым, хотят заменить их макросами, один для пространство имен для каждого типа.
Итак, хотим расширить следующее:
MACROSTUFFBAZ(log2, stuff, "BAZ")
<- текстовая часть уникальна для каждого класса, поэтому ее также необходимо включить в макрос. </p>
до:
#ifdef INPUTSTUFF_BAZ
LOG4CXX_DEBUG(log2, "BAZ stuff used");
stuff = S_BAZ;
#endif
Чтобы определить макросы, планируйте использовать это:
debug.hpp:
#ifdef INPUTSTUFF_BAZ
#define MACROSTUFFBAZ ...
#else
#define MACROSTUFFBAZ
.. no code!
#endif
#endif
(по крайней мере, это даст четкий обзор вещей, которые в настоящее время проходят испытательный срок, не видя их в коде)