【发布时间】:2016-02-16 19:43:39
【问题描述】:
我有这个代码:
#if PY_MAJOR_VERSION >= 3
int
#else
void
#endif
init_numpy()
{
import_array();
}
这并不漂亮,但这不是我遇到的问题(这里讨论了此代码的原因https://mail.scipy.org/pipermail/numpy-discussion/2010-December/054357.html)。
我遇到的问题是,如果我在上面添加这样的 doxygen 评论:
/*! \brief some function
*
*/
#if PY_MAJOR_VERSION >= 3
...
Doxygen 假定此方法的返回类型为 void。一般来说,这当然不是真的。
问题
有没有一种方法可以获得正确的文档,即返回类型取决于所使用的 Python 版本。我不介意,如果上面的代码稍作改动(当然只要功能相同)。
【问题讨论】:
-
您使用的是哪个版本的 doxygen。对于 1.8.11,我没有问题。另请参阅 Doxyfile 中有关预处理的标签
-
doxygen 向导说我使用的是 1.8.11。你说没有问题是什么意思?在您生成的文档中是否显示类似 (int/void) 的内容?
-
在我的文档中,我看到 int 或 void 取决于 Doxyfile 的 PREDEFINED 项中 PY_MAJOR_VERSION 的设置。永远不会显示“int/void”的可能性,因为这与代码相矛盾,这只能在描述中实现。
标签: c++ doxygen preprocessor-directive