我们的C ++程序有一个内置的脚本接口,可以在其中运行脚本。这些脚本可以访问C ++程序提供的便利功能。
现在我们希望Doxygen创建脚本可以访问的函数的文档。这样的函数声明如下所示:
void ScriptEngine::load_script(const QString &path) {
//...
/*! \fn sleep_ms(const unsigned int timeout_ms)
\brief sleeps for timeout_ms milliseconds.
\param timeout_ms
*/
(*lua)["sleep_ms"] = [](const unsigned int timeout_ms) {
//sleep(timeout_ms)
};
//more convenience functions..
//...
}
显然Doxygen不会包含
sleep_ms(const unsigned int timeout_ms)
进入文档。有没有办法告诉Doxygen这样做?
答案 0 :(得分:0)
这样做:
将以下行添加到Doxyfile:
PREDEFINED = _DOXYGEN_
确保Doxyfile中的ENABLE_PREPROCESSING
标记设置为YES
。
将未声明函数的声明和文档放在#ifdef _DOXYGEN_
部分中。
#ifdef _DOXYGEN_
/*! \fn sleep_ms(const unsigned int timeout_ms)
\brief sleeps for timeout_ms milliseconds.
\param timeout_ms
*/
void sleep_ms(const unsigned int timeout_ms);
#endif
不要像上次尝试的那样将上述代码放在ScriptEngine::load_script()
等方法或函数中。并且不要将它放在命名空间或类中,除非事实上声明的函数是该命名空间或类的成员。
使用此方法,您的声明在正常构建期间不会创建链接器错误,但Doxygen会看到它。
另见