Я относительный новичок в doxygen и документирую программу на C.
Часть кода:
\#include "options.h"
// options.h contains
\#define VAL0 0 // Possible values for PARAM
\#define VAL1 1
\#define PARAM VAL0
// Here's the conditional compilation
\#if (PARAM == VAL0)
// code chunk, which doesn't get compiled by Doxygen
\#endif
Код компилируется с помощью GCC, как и ожидалось, но я не получаю документацию по Doxygen.
Хорошо, Doxygen не расширяет макросы, поэтому я попробовал:
\#define SYMEQ(A, B) (A == B) ? 1 : 0
\#if SYMEQ(PARAM, VAL0)
// code chunk
\#endif
Установите Доксиген:
MACRO_EXPANSION = ДА
EXPAND_ONLY_PREDEF = ДА
Нет предопределенных макросов
EXPAND_AS_DEFINED = SYMEQ
Никакого doxygen вывода из условной части, только до него
Я также пробовал EXPAND_AS_DEFINED SYMEQ (A, B)
Тоже не повезло
Я нашел несколько примеров с простыми именами, затем #ifdef NAME \code #endif, но ни одного с макрофункциями.