将整个标头内容添加到Doxygen组

use*_*652 5 doxygen

由于它似乎是一项常见的任务,我很难相信如果我想将头文件中的所有doxygen注释添加到组中,我必须这样做

foo.h
 /**
 *\addtogroup fooGroup
 * @{
 */
...
...

...
/**@}*/
Run Code Online (Sandbox Code Playgroud)

有没有办法让这项工作没有@ {评论?

gmu*_*mug 3

最简洁的答案是不。另一种方法是使用@ingroup命令。如果将该命令放在该@file命令的正下方,则文件引用将添加到该组中,例如:

foo.h:
/**
* @file foo.h
* @ingroup fooGroup
*/
...
Run Code Online (Sandbox Code Playgroud)

这还要求您定义了一个具有该名称的组(也可以位于不同的文件中):

/**
* @defgroup fooGroup Foo
* @brief    A brief description of the Foo component.
* @details  A more detailed description of the Foo component.
*/
Run Code Online (Sandbox Code Playgroud)

但最大的缺点是您必须将@ingroup要在组文档中显示的每个实体的命令放入其中。这意味着您必须将命令添加到每个声明或定义中,例如枚举、结构、变量和函数。

使用@addtogroup@{ ... @}命令有一个很大的优点,即您不需要使用该@ingroup命令将每个实体添加到组中。

组的含义是从不同文件中以一个特定名称收集文档。您还可以将一个文件分为不同的组,因此 @{ 和 @} 注释定义应添加到组名称中的区域的开头和结尾。另一个原因是组可能会构建层次结构,例如包含以下代码的一个文件:

/**
 * @addtogroup group_name
 * @{
 */

<Code Example 1>

/** 
 * @} 
 */

/**
 * @addtogroup group_name_2
 * @{
 */

<Code Example 2>

/**
 * @addtogroup sub_group_name
 * @{
 */

<Code Example 3>

/**
 * @addtogroup sub_sub_group_name
 * @{
 */

<Code Example 4>

/** 
 * @} 
 */

/** 
 * @} 
 */

/** 
 * @} 
 */
Run Code Online (Sandbox Code Playgroud)

这将导致以下组层次结构:

  • 团队名字
  • 组名_2
    • 子组名称
      • 子子组名称

您唯一可以尝试的就是为 \addtogroup 和 { 命令添加别名,例如:

ALIAS += "begingroup{1} = \addtogroup \1 \{"
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,您仍然需要在文件末尾添加 @} 命令。