无法为函数定义生成文档,后跟一些宏#defines

时间:2009-06-10 05:59:56

标签: c++ documentation doxygen

我有一个.cpp文件,发现Doxygen无法记录包含以下格式的函数:

//!
//! \brief Test
//!        and perform operations on those points.
//!
void CTest::TestTri()
EH_Start("CTest::TestTri")
{
}
EH_Stop

EH_StartEH_Stop是一种异常处理机制,会导致问题。

我们如何排除这些?

2 个答案:

答案 0 :(得分:4)

尝试使用更明确的doxygen格式 - 下面告诉doxygen你想要记录哪个函数,所以它不需要理解你的代码来找出附加文档的内容:

/// \fn void CTest::TestTri()
/// \brief Test and perform operations on those points
EH_STart("CTest::TestTri") {} EH_Stop

答案 1 :(得分:1)

假设定义了EH_Start和EH_Stop,你可以在处理代码时让doxygen展开这些宏

EXPAND_AS_DEFINED = EH_Start EH_Stop

我们有许多用于函数和类声明的宏。如果没有EXPAND_AS_DEFINED,doxygen将无法生成正确的文档

例如:

/* C++ Code */
#define STANDARD_CONSTRUCTORS_HEADER(iCLASS) \
  public:  iCLASS(); \
  public:  virtual ~iCLASS(); \
  private: iCLASS(const iCLASS & iCopy); \
  private: iCLASS& operator=(const iCLASS &);

class Foo {
  STANDARD_CONSTRUCTORS_HEADER(Foo)
}

/* Doxyfile */
EXPAND_AS_DEFINED = STANDARD_CONSTRUCTORS_HEADER

如果没有EXPAND_AS_DEFINED,您将无法在文档中获得Foo构造函数。