我正面临Doxygen的一个非常不重要的问题。但由于我无法通过互联网找到答案而我非常好奇,所以我来这里请你分享你的知识。
当我在一个类上工作时,我习惯在标准位置定义文档的小部分,但我还习惯在头文件的底部定义大文档部分,如代码示例或逐字,而不是定义它们在每个班级之上。 那些我需要使用Doxygen的“其他地方的文档”功能。
这是一个有效的例子:
/** This is my class description */
class MyClass
{
...
};
/*! @class MyClass
@code
...some code example
@endcode */
这通常效果很好。
但今天我正在尝试使用与专门的模板类相同的方法,而且我无法将其放在文档中的正确位置。
这是一个非工作的例子:
/** This is my class description */
template < class Tr, class... Args >
class MyClass<Tr(Args...)> : public MyBaseClass {
...
};
/*! @class MyClass<Tr(Args...)>
@code
...some code example
@endcode */
我搜索了文档,Doxyfile和Internet,但我仍然无法判断我是否应该这样做,或者这是一个“错误”或非通常情况。
感谢您的启发。
编辑:我使用最简单的模板类(没有专门化)进行了一些测试,但这也没有用。
/** This is my class description */
template < class Tr >
class MyClass
{
...
};
/*! @class MyClass // @class MyClass< Tr > // @class template < Tr > MyClass
@code
...some code example
@endcode */
我尝试在类名之前或之前指定模板,使用或不使用“template”关键字,并仅使用类名,但它似乎没有任何作用。
编辑2:它适用于简单的模板类。之前的编辑测试无效,因为我已将类定义为命名空间而未在Doxygen注释中指定命名空间:@class namespace :: MyClass
但它仍然不适用于专门的模板类,我仍然无法将注释块重定向到专门的模板类。
答案 0 :(得分:0)
我认为你不应该把模板参数放在那里。做那样的事情:
/** This is my class description */
template < class Tr, class... Args >
class MyClass<Tr(Args...)> : public MyBaseClass {
...
};
/*! @class MyClass
@code
...some code example
@endcode */
我不确定它是否有效(这里没有安装doxygen),但我认为应该这样做。