Doxygen,当参数类型定义使签名相同时,如何拆分函数文档?

Doxygen, how to split function documentation when parameter typedef makes signatures identical?

本文关键字:拆分 何拆分 文档 函数 类型 参数 定义 Doxygen      更新时间:2023-10-16

我必须记录两个单独的函数,由于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);

当群被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);

有许多方法可以处理此问题,它们都归结为不尝试使用枚举器来区分具有相同签名的函数。