C++ Doxygen`@code`块中的链接有时会丢失

C++ Doxygen`@code`块中的链接有时会丢失,c++,doxygen,C++,Doxygen,我注意到,当默认构造函数不带参数,但在构造函数接受参数时,Doxygen可以链接实例中的成员函数调用,但无法链接它们 为什么呢 是否有在@code/@endcode块中手动添加链接的解决方法 在以下示例中: t.foo()-foo()已链接 u.foo()-foo()未链接 /**@文件doxy.cpp*/ /**结构T*/ 结构T{ /**福*/ void foo(){} }; /**结构单元*/ 结构单元{ int a;/**

我注意到,当默认构造函数不带参数,但在构造函数接受参数时,Doxygen可以链接实例中的成员函数调用,但无法链接它们

  • 为什么呢
  • 是否有在
    @code
    /
    @endcode
    块中手动添加链接的解决方法
在以下示例中:

  • t.foo()
    -
    foo()
    已链接
  • u.foo()
    -
    foo()
    未链接

/**@文件doxy.cpp*/
/**结构T*/
结构T{
/**福*/
void foo(){}
};
/**结构单元*/
结构单元{
int a;/**
我认为这是Doxygen已知问题的症状。从

在某些情况下,多余的大括号会混淆doxygen。例如:

void f (int); 
被正确解析为函数声明,但

const int (a);
也被视为名为int的函数声明, 因为只分析语法,不分析语义。如果 可以检测到冗余大括号,如中所示

int *(a[20]); 
然后,doxygen将删除大括号并正确解析结果

所以在这种情况下,我相信:

U u(42);
被解释为函数而不是变量声明

不幸的是,我不知道在代码块中显式添加链接的任何选项。我发现的唯一解决方法是重新构造代码,使声明看起来不像是Doxygen的函数。例如,将变量初始化更改为:

U u = U(42);
允许Doxygen将
u
识别为变量而不是函数

U u = U(42);