Doxygen - 多功能的单注释块

时间:2016-05-17 19:08:47

标签: c++ comments doxygen

您是否可以使用单个注释块来评论doxygen中的多个功能?下面是一个不起作用的简单示例。我可以做类似的事情来获得我想要的东西吗?

file.cpp

#include file.h

/// @name FunsGroupedInDoxygen
///@{
/**
 * @brief  Documentation for 2 functions
 * @param  aParam A Parameter
 * @retval 0 will always be returned
 */
int fun1(int aParam) {return 0;}
int fun2(int aParam) {return 0;}
///@}

file.h

int fun1(int aParam);
int fun2(int aParam);

输出氧气:

警告:文件file.h的成员fun2(int aParam)(函数)没有记录。

2 个答案:

答案 0 :(得分:8)

在这里查看Doxygen manual中的分组,您可以使用多种方法。我认为最符合这种情况的是会员组。

您可以使用以下两种样式之一定义成员组:

///@{ 
  ...
///@}

/**@{*/ 
  ... 
/**@}*/

这方面的一个例子是:

/** @name FunctionGroup
 * @brief  Documentation for 2 functions
 * @param  aParam A Parameter
 * @retval 0 will always be returned
 */
///@{
//* fun1 specific description */
int fun1(int aParam) {return 0;}
//* fun2 specific description */
int fun2(int aParam) {return 0;}
///@}

这允许您定义一个可以提供通用描述的组,并且仍然允许您删除特定于创建的doxygen文件中每个函数的注释。

我没有在计算机上安装doxygen并且无法直接测试此代码,但是如果遵循文档中成员组部分的group2的示例,则编译该示例的输出为shown here,希望这是您想要的输出。

编辑:

测试之前确实为我工作但仅在我将所需的提取模式设置为所有实体时(doxyfile中的EXTRACT_ALL = YES)。最好只使用实际记录的实体,所以我花了一些时间尝试上述文档中的不同方法。

file.h:

/**
 * \defgroup FunctionGroup A Group of Functions
 * @brief Documentation for 2 functions
 * @param aParam A Parameter
 * @retval 0 will always be returned
 * @{
 */ 
int fun1(int aParam);
int fun2(int aParam);
 /** @} */

file.cpp:

#include file.h

/** @ingroup FunctionGroup
 * @brief fun1 specific description
 */
 int fun1(int aParam){
    return 0;
 }
/** @ingroup FunctionGroup
 * @brief fun2 specific description
 */
 int fun2(int aParam){
    return 0;
 }

这是我在这两个文件上运行Doxygen时输出的图像: output of doxygen files

我在Windows机器上使用了doxywizard,我生成的doxyfile是on pastebin

答案 1 :(得分:5)

我不确定单个评论块,但简单易用的方法是使用@copydocreference here),例如:

/**
 * @brief Brief description
 * @param aParam A parameter
 */
void foo(int aParam) {}

/**
 * @copydoc foo(int)
 */
void bar(int aParam) {}