2016-11-20 2 views
0

次のマクロ定義を考える:gccの関数属性として、doxygenがパラメータ化されたマクロ関数属性を切り捨てるのはなぜですか?

#if defined(__GNUC__) && __GNUC__ >= 4 
#define WL_PRINTF(x, y) __attribute__((__format__(__printf__, x, y))) 
#else 
#define WL_PRINTF(x, y) 
#endif 

そして次利用を与えた:

typedef void (*wl_log_func_t)(const char *, va_list) WL_PRINTF(1, 0); 

doxygenは、次のように表示されて、機能の属性の一部を切り捨てているように見える。

enter image description here

そして、この:

enter image description here

doxygenはまた、私はマクロ関数属性を使用する他の例においても同様に、それを切り捨てるので、問題は(それが、これは(typedefであることについてではありません)一貫性のあると思われます。それはマクロ自体をうまく文書化します。

マイ.doxygenの設定は次のとおりです。

PROJECT_NAME   = "Wayland" 
PROJECT_NUMBER   = 1.12.90 
OUTPUT_DIRECTORY  = ../../doc/doxygen 
JAVADOC_AUTOBRIEF  = YES 
TAB_SIZE    = 8 
QUIET     = YES 
HTML_TIMESTAMP   = YES 
GENERATE_LATEX   = NO 
MAN_LINKS    = YES 
PREDEFINED    = WL_EXPORT= 
MACRO_EXPANSION  = YES 
EXPAND_ONLY_PREDEF  = YES 
DOT_MULTI_TARGETS  = YES 
ALIASES    += comment{1}="/* \1 *<!-- -->/" 
OPTIMIZE_OUTPUT_FOR_C = YES 
EXTRACT_ALL   = YES 
EXTRACT_STATIC   = YES 
GENERATE_HTML   = NO 
GENERATE_XML   = NO 
GENERATE_MAN   = NO 

はこれを切り捨てないにDoxygenのをだますためにいくつかのきちんとした方法はありますか?

答えて

0

これはdoxygenの制約(「バグ」と発音される)のように、切り捨てられます。代わりに、PREDEFINED設定にマクロを追加することによって、機能属性の生成を完全に取り除くことができます。

関連する問題