由于它似乎是一项常见的任务,我很难相信如果我想将头文件中的所有doxygen注释添加到组中,我必须这样做
foo.h
/**
*\addtogroup fooGroup
* @{
*/
...
...
...
/**@}*/
Run Code Online (Sandbox Code Playgroud)
有没有办法让这项工作没有@ {评论?
最简洁的答案是不。另一种方法是使用@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)
这将导致以下组层次结构:
您唯一可以尝试的就是为 \addtogroup 和 { 命令添加别名,例如:
ALIAS += "begingroup{1} = \addtogroup \1 \{"
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,您仍然需要在文件末尾添加 @} 命令。