[英]Documenting C++ static template function with Doxygen
您好我用Doxygen记录C ++类静态模板函数有问题:
Clazz.h:
#ifndef CLAZZ_H
#define CLAZZ_H
/*! \file clazz.h
* \brief Clazz declaration
* \author Me and myself
* \sa Clazz
*/
/*! \class Clazz
* \brief About class
*/
class Clazz
{
public:
/*! \fn TYPE func(TYPE value)
* \brief About static func
* \param value Parameter
* \returns Some value of \c TYPE
* \tparam TYPE Class type.
*/
template<typedef TYPE>
static TYPE func(TYPE value);
};
#endif
Clazz.cpp:
#include "clazz.h"
/*! \file clazz.cpp
* \brief Clazz implementation
* \author Me and myself
* \sa Clazz
*/
template<typedef TYPE>
TYPE Clazz::func(TYPE value)
{
return value;
}
Doxygen显示:
Generating docs for compound Clazz...
xxx/clazz.cpp:10: Warning: Member func(TYPE value) (function) of class Clazz is not documented.
当我看到HTML输出时,我可以看到该功能两次:
Public Member Functions
template<typedef TYPE> TYPE (TYPE value)
Static Public Member Functions
template<typedef TYPE> static TYPE func (TYPE value)
About func. More...
我不想要那些非静态文档。
任何想法如何做到这一点?
谢谢。
我有一个类似的问题,一堆模板函数在文档中出现两次,一次是静态的,一次不是。
我在.inl
文件中有函数定义(有人更喜欢使用.hpp
),它包含在.h
。 我添加了EXTENSION_MAPPING inl=c++
无济于事。 我也尝试将函数定义移动到.h
以确保Doxygen在解析声明的同时看到它,但这也无济于事。 这让我相信这是一个Doxygen错误 - 在解析成员模板定义时,它无法将其与static
关键字出现的相应声明相关联,并且笨拙地将该函数复制为非静态。 好吧,解析C ++并不是一件容易的事。
我最后添加了.inl
文件以忽略列表,因为它无论如何都没有文档注释(除了@file
本身的文档)。 现在它没有出现在文件列表中,但这似乎是比文档中出现虚假成员函数更小的邪恶。 我想你可以将.inl
中的.inl
函数(或至少有问题的函数)放入#ifndef DOXYGEN
块中并获得完美的结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.