c++ - 我如何@ref 同一方法的不同变体?

标签 c++ comments documentation doxygen cross-reference

我正在为一些 C++ 代码编写 doxygen 注释。我有两个功能:

/** Some existing doxygen comment */
int foo(int x);

/** Another existing doxygen comment */
int foo(
    this_signature y1,
    is_really_long y2, 
    and_to_be_honest y3, 
    i_would y4, 
    really_rather y5, 
    avoid_repeating_it y6);

/** This is what I'm writing now */
int foo(double z);

在第二个函数的 doxygen 注释中,@ref 我想引用第二个函数,或者更确切地说是函数的第二个变体。我该怎么做呢?

注意:我特别(不仅仅是机器人)对不会非常冗长的解决方案感兴趣(考虑到第二个函数的长签名)。

最佳答案

它(就像@Scheff 写的那样)可以通过签名来引用。所以像这样:

/** Fie to show reference:
  *
  * \ref foo(unsigned long)
  *
  * \ref foo(unsigned long y)
  */
void fie(void);

另见 http://www.doxygen.nl/manual/autolink.html#linkfunc .

关于长签名的评论,要么使用@Scheff 建议的 \anchor 可能性,但在我看来,起初它看起来是一个很好的解决方案,但它不太容易维护(签名变体是在生成文档时检查是否存在,但是 \anchor\ref 中的字符串不存在(您可能需要这样的东西:\ref my_anch "foo(unsigned long y)" 否则 (\ref my_anch) 链接将具有名称 my_anch

关于c++ - 我如何@ref 同一方法的不同变体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52927346/

相关文章:

javascript - 如果注释是安全的,那么为什么 `x = 0; x+/*cmt*/+;` 或 `var f/*cmt*/oo = ' foo';` 不起作用?

documentation - VSCode : How to document promise that resolves with complex object?

ruby-on-rails - 为什么 yard 不在 Rails 项目中显示私有(private)方法?

c++ - 使用 g++ 链接编译指示

c++ - reinterpret_cast<char *> 是 reinterpret_cast 的唯一有效用法吗?

xml - XML 注释可以随处使用吗?

c# - API 文档中的自定义附加信息

c++ - 努力学习winapi。制作了第一个程序,它必须向我展示一个窗口。 CMD显示但是没有窗口

c++在调用函数时无法使用自定义类读取内存

python - 使用 ruamel.yaml 检索文档头部的注释