Doxygen:解释模板参数超类

时间:2018-04-24 16:41:56

标签: templates doxygen

在此代码中,此示例在此处连接来自不同库中的多个文件:

template <typename T1=void,typename T2=void,typename T3=void>
struct Implements ;

template <typename T1>
struct Implements<T1,void,void>
:   public virtual T1
{ } ;
template <typename T1,typename T2>
struct Implements<T1,T2,void>
:   public virtual T1
,   public virtual T2
{ } ;
template <typename T1,typename T2,typename T3>
struct Implements<T1,T2,T3>
:   public virtual T1
,   public virtual T2
,   public virtual T3
{ } ;

struct MySuper { } ;
struct MyClass : public Implements<MySuper> { } ;

如何让doxygen识别MySuperMyClass的超类?

目前,在班级列表中,它列出了T1T2T3作为其中的超类......有时候。其他时候它完全忽略了它。

我使用doxygen版本1.8.4(虽然1.8.14不会改变此行为)。

此示例中的类图将Implements显示为派生自[字面] MySuperT2T3。 (注意:这也表明它不了解部分模板特化和默认参数。)在我的实际代码中,它通常不会显示MySuper而是显示T1。< / p>

这是doxygen -g文件和我的文件之间的差异:

28c28
< PROJECT_NAME           =
---
> PROJECT_NAME           = "MyLibrary"
41c41
< OUTPUT_DIRECTORY       =
---
> OUTPUT_DIRECTORY       = generated
173c173
< TAB_SIZE               = 8
---
> TAB_SIZE               = 4
530c530
< WARN_IF_UNDOCUMENTED   = YES
---
> WARN_IF_UNDOCUMENTED   = NO
571c571
< INPUT                  =
---
> INPUT                  = ../impl ../include
588c588
< FILE_PATTERNS          =
---
> FILE_PATTERNS          = *.c *.cpp *.cxx *.hxx *.hpp *.h *.dox
594c594
< RECURSIVE              = NO
---
> RECURSIVE              = YES
991c991
< GENERATE_LATEX         = YES
---
> GENERATE_LATEX         = NO
1308c1308
< GENERATE_TAGFILE       =
---
> GENERATE_TAGFILE       = generated/MyLibrary.tag

Implements类位于MyLibrary中,用户代码位于不同的库中。我对用户项目有一个类似的doxy,主要区别于

TAGFILES = ../../MyLibrary/docs/generated/MyLibrary.tag=../../../../MyLibrary/docs/generated/html

在这种情况下,它根本不会扩展模板参数(它是逐字T1T2T3而不是&#39; MySuper&#39 ;,T2T3)。

0 个答案:

没有答案