如何在Doxygen中屏蔽getInstance()的调用者以优化调用/调用者图?
解决Doxygen调用/调用者图里屏蔽特定函数的问题
几个实用办法
1. 给目标函数手动加排除规则
在你关心的函数注释里,生成调用图时用\exclude指定要屏蔽的getInstance(),比如:
/** * 这是你要生成调用图的目标函数 * \callgraph * \exclude MySingleton::getInstance() * \exclude OtherSingleton::getInstance() */ void yourTargetFunc() { // 函数实现 }
这种方式要逐个函数加,适合只关注少数函数的场景。
2. 全局配置一键过滤
修改Doxygen的Doxyfile配置文件,找到EXCLUDE_SYMBOLS项,把所有单例的getInstance()加进去:
EXCLUDE_SYMBOLS = MySingleton::getInstance() \ OtherSingleton::getInstance() \ *::getInstance() # 嫌麻烦就用通配符,匹配所有类的getInstance()
注意通配符会把所有同名函数都屏蔽,要是项目里有非单例的getInstance(),就得精准写签名。
3. 直接让Doxygen忽略该函数
在getInstance()的注释前后加\cond和\endcond,让Doxygen完全不解析这个函数的任何信息,包括调用关系:
/** \cond */ MySingleton& MySingleton::getInstance() { static MySingleton instance; return instance; } /** \endcond */
这种属于彻底屏蔽,适合确定这个函数的调用关系完全不需要出现在任何图里的情况。
小提醒
Doxygen 1.8.13版本比较老,部分功能可能不如新版本顺手,先试试全局配置的方法,效率最高。要是用通配符,别误删了有用的函数。
内容的提问来源于stack exchange,提问作者Dave Tweed
相关产品推荐
相关产品推荐

