如何在不使用成员组的Doxygen中避免C++重载函数注释重复?
Doxygen处理C++重载函数注释的优化方案
不用复制粘贴,针对重载函数的注释复用问题,有两种高效解决方案:
方案1:使用@overload命令
给第一个重载函数编写完整的公共注释(包括@brief和公共参数说明),后续重载函数只需用@overload标记,再补充各自独有的参数注释即可。Doxygen会自动关联这些重载函数,共享公共文档内容。
示例代码:
/// @brief 执行frobnication操作 /// @param s 某个字符串参数 /// @param x 类木琴音色的参数 /// @param b 起到堡垒作用的参数 void frobincate(char const* s, int x, bool b); /// @overload /// @param f 出色的参数 /// @param d 恶劣的参数 void frobincate(char const* s, float f, double d);
方案2:使用@copydoc命令复用注释
如果需要灵活复用已有函数的完整文档,再补充差异部分,可以用@copydoc直接引用第一个函数的文档,然后追加当前重载独有的参数说明:
示例代码:
/// @brief 执行frobnication操作 /// @param s 某个字符串参数 /// @param x 类木琴音色的参数 /// @param b 起到堡垒作用的参数 void frobincate(char const* s, int x, bool b); /// @copydoc frobincate(char const*, int, bool) /// @param f 出色的参数 /// @param d 恶劣的参数 void frobincate(char const* s, float f, double d);
关于成员组(///@{////@})的说明
你之前尝试的成员组功能是用来将多个成员归类展示,组级注释是整个组的说明文字,不会自动继承给组内每个成员,因此不适合实现重载函数的注释复用。
内容的提问来源于stack exchange,提问作者einpoklum
相关产品推荐
相关产品推荐

