我有一些用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.
_Success_(return == Success)
virtual Result_t DoSomething(_Out_ uint32_t *pResult) = 0;
};
在这种情况下,doxygen报告了警告:
命令@param的参数'pResult'在Foo :: _ Success_(return == Success)= 0的参数列表中找不到
因此,doxygen被注释语句_Success_()
弄糊涂了。
如何隐藏返回值注释
_Success_(return == Success)
去氧
而不会使源文件混乱。这样就可以了,但是看起来太冗长了:
//! 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并保持源代码不变来实现吗?
答案 0 :(得分:1)
在Preprocessing
一章的doxygen手册中有一部分:
一个典型的需要预处理器帮助的例子是 在处理来自Microsoft的语言扩展时: declspec。 GNU的__attribute 扩展也是如此。这是一个例子 功能。
在您的情况下,以下操作可能会起作用:
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
PREDEFINED = _Success_(x)=