我有一些用Doxygen记录的类。此外,它们还使用Microsoft的源代码注释语言(SAL)进行注释,以支持静态代码分析。
//! The majestic class.
class Foo {
//! \brief do something
//! \param [out] pResult The result value is stored here.
//! \returns The return value Succcess indicates success.
_Success_(return == Success)
virtual Result_t DoSomething(_Out_ uint32_t *pResult) = 0;
};
在这种情况下,Doxygen将报告警告:
在Foo :: _ Success_(return == Success)= 0的参数列表中找不到命令@param的参数'pResult'
因此,Doxygen被注释语句弄糊涂了_Success_()
。如何在_Success_(return == Success)
不向源文件添加混乱的情况下将返回值注释隐藏到Doxygen?这可以完成工作,但是看起来太冗长:
//! The majestic class.
class Foo {
//! \brief do something
//! \param [out] pResult The result value is stored here.
//! \returns The return value Succcess indicates success.
//! \cond INTERNAL
_Success_(return == Success)
//! \endcond
virtual Result_t DoSomething(_Out_ uint32_t *pResult) = 0;
};
可以通过配置Doxygen并保持源代码不变来实现吗?
在本章的doxygen手册中Preprocessing
有一部分:
一个典型的需要预处理器帮助的示例是在处理Microsoft的语言扩展时
__declspec
。GNU的__attribute__
扩展也是如此。这是一个示例函数。
在您的情况下,以下可能会起作用:
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
PREDEFINED = _Success_(x)=
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句