Doxygen,当参数 typedef 使签名相同时如何拆分函数文档?

分数

我必须记录两个单独的函数,由于 typedef,它们似乎被解释为相同的函数,因此将两者的文档组合在一起。

这是一个非常简化的示例:

typedef int group;

typedef enum { INDIVIDUAL = 0, GROUP = 1, } type_to_process;    

/**************************************************************************//**
 *
 * @brief Individual function.
 *
 * @param[in] type     type to process
 * @param[in] p_int    individual number to process
 *
 *****************************************************************************/
void function(type_to_process type, int *p_int);

/****************************************************************************//**
 *
 * @brief Group function.
 *
 * @param[in] type      type to process
 * @param[in] p_group   group number to process
 *
 *****************************************************************************/
void function(type_to_process type, group *p_group);

由于 group 被连接typedef到一个int,doxygen 认为这两个函数是相同的。

有没有办法让 doxygen 将它们记录为单独的功能?

谢谢。

尼可波拉斯

Doxygen 遵循 C++ 的规则,C++ 的规则说那些是同一个函数。没有办法让 Doxygen 假装这些声明是针对不同的函数,就像没有办法让 C++ 假装这些声明是针对不同的函数一样。

一般而言,Doxygen 不允许您对文档的读者撒谎

处理这个问题的正确方法是实际遵循 C++ 的重载规则:

struct process_individual{};
struct process_group{};

void function(process_individual, int *p_int);
void function(process_group, group *p_group);

或者更好的是,给它们起不同的名字,因为它们并不是真正的重载。或者更好的是,不要对单个指针使用指针:

void function(int &integer);
void function(group *p_group);

有很多方法可以解决这个问题,它们都归结为不尝试使用枚举器来区分具有相同签名的函数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章