Код: Выделить всё
#ifdef __cplusplus
/// myfuncA
void myfuncA();
/// MYMACRO_A
#define MYMACRO_A() \
myfuncA();
#else
/// myfuncB
void myfuncB();
/// MYMACRO_B
#define MYMACRO_B() \
myfuncB();
#endif
Увы, оказалось невозможным сделать доксиген одновременно, документируя все четыре из них!
Код: Выделить всё
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
SKIP_FUNCTION_MACROS = NO
Альтернативно, когда я устанавливаю
Код: Выделить всё
ENABLE_PREPROCESSING = NO
Attempted solutions
[*]I have tried every combination of MACRO_EXPANSION and EXPAND_ONLY_PREDEF, and Разоблачение макросов для expand_as_defined и предопределено без успеха.
[*] Я попытался настройка
Код: Выделить всё
ENABLE_PREPROCESSING = YES
PREDEFINED = ifdef __cplusplus=
< /code>
так что доксиген удалял ветви #if < /code> перед началом анализа и оценки,
, но этот ужасный взлом слишком сложный для моего приложения. Использование @def Теоретически можно использовать
Код: Выделить всё
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
SKIP_FUNCTION_MACROS = NO
# crucially...
PREDEFINED = __cplusplus=0 __cplusplus=1
Код: Выделить всё
#ifdef __cplusplus
/// myfuncA
void myfuncA();
#define MYMACRO_A() \
myfuncA();
#ifdef THIS_BOGUS_MACRO
/// MYMACRO_A
void MYMACRO_A();
#endif
#else
/// myfuncB
void myfuncB();
#define MYMACRO_B() \
myfuncB();
#ifdef THIS_BOGUS_MACRO
/// MYMACRO_B
void MYMACRO_B();
#endif
#endif
Подробнее здесь: https://stackoverflow.com/questions/795 ... th-doxygen
Мобильная версия