8

我们有一个使用 doxygen 记录的 c++ 项目,只将 doxygen 注释放在类的标题中,我们在 cpp 中记录静态函数。

我们的 doxygen 配置文件收集项目内的任何头文件 /hpp) / implementation /cpp) 文件。此外,我们有相当多的独立组件(和外部组件)被隔离在命名空间内。

该项目以我们使用多态的方式完成(由于代理模式的广泛使用)

由于这是一种常见的做法,我们禁止在头文件中使用 using指令,并在实现文件中使用它。

通常,我们在标题中:

/**
 * @brief
 *   test from A
 */
void f(N1::N2::A);
/**
 * @brief
 *   test from A
 */
void f(N1::N2::B);

在实现内部,我们有

using namespace N1::N2;

void f(A) { }
void f(B) { }

运行 doxygen 时,他似乎很困惑并产生错误消息:

warning: no uniquely matching class member found for f(A)
possible candidates:
void f(N1::N2::A)
void f(N1::N2::B)

知道如何摆脱这些错误并使 doxygen 了解“使用”指令吗?

编辑

  • 坏消息,似乎在错误跟踪器上打开:https ://bugzilla.gnome.org/show_bug.cgi?id=617285 ,https ://bugzilla.gnome.org/show_bug.cgi?id=154880 :看起来像我'正在寻找一种解决方法,而不是一个干净的解决方案。
4

1 回答 1

0

没有找到解决方法,我们恢复为在实现中使用完整的命名空间以与标头定义完全匹配。将其标记为已关闭,我的损失:-(查看问题中的评论/编辑可能会对读者有所帮助

于 2013-04-24T10:46:58.113 回答