模板类中的 typedef 与 Doxygen (C++)
typedef in template class with Doxygen (C++)
我的问题与如何使用Doxygen在模板类中注释typedef有关。我将举一个例子来说明我的问题:
namespace fundamental
{
/**
* Basic function
*/
template <typename T>
class Base
{
public:
T x; ///< x coordinate
T y; ///< y coordinate
};
typedef Base<float> Coordinate; ///< Point coordinate class
}
使用 Doxygen 处理上述代码后,我可以得到一个 HTML 页面来显示类 Base 的定义。但是,对于 typedef 类坐标,它不会与 Base 显示在同一页面中。事实上,所有 typedef 类型都与此命名空间中的所有类一起列在基本命名空间页中。我想知道是否可以在基本 HTML 页面中显示坐标类。这样,基础和坐标之间的联系将变得更加紧密。谢谢!
typedef 是命名空间的一部分,因此您必须记录命名空间才能显示它,即:
/// documentation for the namespace
namespace fundamental
{
...
typedef Base<float> Coordinate; ///< Point coordinate class
}
或者,您可以使用@relates
但它会将成员置于基类的相关函数下:
/// @relates Base
/// Point coordinate class
typedef Base<float> Coordinate;
例如,您可以使用doxygen -l
创建布局文件,然后在生成的DoxygenLayout.xml
中编辑related
元素的两个匹配项,从而将此标题更改为相关成员,如下所示:
<related title="Related Members"/>
在手册中,我阅读了以下内容:
让我们重复一遍,因为它经常被忽视:要记录全局对象(函数、typedefs、enum、宏等),您必须记录定义它们的文件。换句话说,至少必须有一个
/*! file */
或 /** @file */
此文件中的行。
还有"另请参阅"(@sa) 命令,可用于生成对其他实体的交叉引用。
您也可以使用 /sa
命令手动将引用放置在 Base
的页面中。
namespace fundamental
{
/**
* Basic function
* /sa Coordinate
*/
template <typename T>
class Base
{
public:
T x; ///< x coordinate
T y; ///< y coordinate
};
typedef Base<float> Coordinate; ///< Point coordinate class
}
其他答案将起作用,但是如果您的typedef
与Base
类密切相关,以至于您希望它们出现在同一个 Doxygen 页面中,您可能需要考虑定义一个新的namespace
(在 Fundamental
内),该将只包括Base
和您的typedef.
然后,doxygen将为该namespace
生成一个页面,其中包括Base
和您的typedef.
定义file
文档将执行相同的操作,但对于您的代码来说,这可能是更合乎逻辑的布局。
这个问题还有另外两种解决方案。您可以使用@defgroup关键字定义组,并将类和 typedef 类型分组到一个模块中。另一种解决方案是使用@relates
- 使 \page 和 \subpage 参考 doxygen 中的方法文档
- Doxygen - 如何在不生成图形的情况下生成文本调用关系结果
- 使用 Doxygen 记录枚举类值,而不启用EXTRACT_ALL
- 带有 *.in 文件的 Doxygen
- 记录Doxygen中的命名
- Doxygen:不为非成员函数生成超链接
- 使用 Doxygen 在不同文件中注释函数
- 如何设置叮当格式的注释编译指示,以免触及多行doxygen注释?
- c++ Doxygen example and description
- 如何在同时包含C++和Python的项目(多编程语言项目)中使用doxygen
- 如何配置 Doxygen 以在"Class Index"中包含类的类型定义?
- 如何确保 C/C++ 代码中不会缺少 doxygen 风格的文档注释?
- 使用 Doxygen 和非 Doxygen 注释源代码创建文档
- 如何从 doxygen 创建的 html 更改回代码
- 使用 cmake 构建 dOxygen 的问题
- Doxygen不会为独立函数生成文档
- 如何从doxygen输出中排除类的无证件成员函数/变量
- Doxygen,当参数类型定义使签名相同时,如何拆分函数文档?
- Doxygen详细描述渗入简要描述
- Doxygen:识别所有 c++ 注释