C++类操作符的Doxygen离线文档编写

3
如果我有一个无法更改的文件中的类,但我需要在doxygen中记录它,最好的方法是什么?我知道最好在实际的.h或.cpp文件中进行文档记录,但在这种特定情况下,这是不可能的。
我已经找到了如何记录一些成员的方法,但无法以可靠的方式记录运算符。让我举个例子。这是一个示例类,其中一个成员引起了问题,而另一个成员则正常工作:
class Foo
{
public:
    int Bar();
    bool operator!() const;
};

在Doxygen查找的其他文件中,我放置了以下内容:

/// @fn Foo::Bar
/// @brief Some info about the constructor
/// @return Some stuff about what bar returns

构造函数的文档可以使用,但这个不行:
/// @fn Foo::operator!
/// @brief Some info about the operator
/// @return Some stuff about what the operator! returns

也不会:

/// @fn operator!
/// @memberof Foo
/// @brief Some info about the operator
/// @return Some stuff about what the operator! returns

我还尝试使用%和.对各个部分进行转义。例如,它看起来像"/// @fn %operator!"、"/// @fn operator%!"或"/// @fn operator!",但是这些都没有起作用。

关于运算符的信息从未显示出来。有几次我尝试在运算符doxygen注释中放入一个唯一的值,并在doxygen输出中进行搜索,但是没有结果。我做错了什么?

1个回答

6
如果您查看您的doxygen输出,应该会有一个警告。
/path/to/Documentation: warning: no matching class member found for
  Foo::operator!()
Possible candidates:
  bool Foo::operator!() const

在这种情况下,更改您的文档为:
/// @fn Foo::operator!() const
/// @brief Some info about the operator
/// @return Some stuff about what the operator! returns

请注意在@fn标识符后面添加的额外() const


我也没有注意到doxygen输出中的警告,因为这个文件有大约1200个未记录的项目。完整的API定义就在其中。 - Sqeaky
关闭未记录项目的警告。您仍应该收到诸如上述的警告,因为这是一种不同类型的错误。 - Andy Dent

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接