Doxygen:在函数内移动静态变量文档

Doxygen: Moving a static variable documentation inside a function

考虑这段代码:

#include <string>

namespace MyNamespace
{

/** \brief Error Class */
class Error
{
public :
    /** \brief Constructor */
    Error ( int in_code, const std::string& in_message );
    ...
};

/** \brief Successfull result */
static Error SUCCESS(                                   0, "Success. " );
/** \brief Error of unknown kind, used internally only to identify a pending result */
static Error ERROR_UNKNOWN(                             1, "Unknown Error. " );
...

};

MyNameSpace 已经是 doxygen 组的一部分。当我生成文档时,我得到:

如何标记 SUCCESSERROR_UNKNOWN 以显示在 Error class 描述页面中?

注意:我无法定义一个新组并将两者都放入,因为我的组列表已冻结(我们希望每个库一个组)。 "Hidden"组可能是解决方案。

到目前为止,我能找到的最好的 "solution" 是使用 \memberof

这个:

/** \memberof Error @{ */

/** \brief Successfull result */
static Error SUCCESS(                                   0, "Success. " );
/** \brief Error of unknown kind, used internally only to identify a pending result */
static Error ERROR_UNKNOWN(                             1, "Unknown Error. " );
...

/** @} */

SUCCESSERROR_UNKNOWN 移动到 Error class 描述的 "Static Public Member Functions" 下。这不是很好,因为它们然后与其他真正的静态 public 成员函数混合。但是还要添加一个 \name 标签...

/** \memberof Error @{ */
/** \name Error values: */

/** \brief Successfull result */
static Error SUCCESS(                                   0, "Success. " );
/** \brief Error of unknown kind, used internally only to identify a pending result */
static Error ERROR_UNKNOWN(                             1, "Unknown Error. " );
...

/** @} */

将把 SUCCESSERROR_UNKNOWN 移动到 Error class 描述的 "Related Functions" 下的 "Error values" 部分,并附有很好的注释报告(Note that these are not member functions.)..绝对可以接受...

在代码中,SUCCESSERROR_UNKNOWN而不是Error部分class,因此生成的文档是正确的(撇开 "function" 的问题)。

试图让 doxygen 将它们显示为错误的一部分 class 是非常具有误导性的,因为文档和代码现在是矛盾的。

如果您确实希望 SUCCESS 成为 Error class 的一部分,请在代码中实现。

或者,这可能是意图,在 Error class 的文档中,添加像 @see SUCCESS@see ERROR_UNKNOWN.[=18= 这样的注释]

这将生成 "See also" 指向这些项目文档的评论。