2016-11-20 49 views
0

考虑下面的宏定义:为什么doxygen会截断参数化的宏函数属性?

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

并给予下述的使用,作为GCC功能属性:

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中的一个约束(发音为'bug'),导致它截断。另一种方法是通过将宏添加到PREDEFINED配置中来完全删除功能属性的生成。

相关问题