Можно ли заставить Doxygen расширять инициализаторы перечислений? - PullRequest
3 голосов
/ 22 марта 2011

Для следующего ввода:

enum A  
{  
  A1 = 1,
  A2 = 2  
};  
enum B  
{  
  B1 = A2,  
  B2 = A2 * A2 + 1  
}  

Я бы хотел, чтобы doxygen расширил / разрешил инициализаторы B :: B1 и B :: B2. Я хотел бы иметь респектабельные 2 и 5 в инициализаторах B1 и B2, а не A2 и A2 * A2 + 1. Является ли это возможным? Если да, то как этого достичь?
Пожалуйста, обратите внимание, что я спрашиваю только об инициализаторах enum. Они известны во время компиляции, поэтому (теоретически) doxygen должен уметь вычислять.

EDIT: Удалено ; из определений перечисления.

1 Ответ

1 голос
/ 09 апреля 2014

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

Ваш код может выглядеть следующим образом:

#define A_1 1
#define A_2 2
#define B_1 A_2
#define B_2 (A_2 * A_2 + 1)

enum A  
{  
  A1 = A_1,
  A2 = A_2
};

enum B  
{  
  B1 = B_1,
  B2 = B_2
};

А в конфигурации doxygen вам нужно включить ENABLE_PREPROCESSING и MACRO_EXPANSION.

...