Doxygen
ScopedTypeVariant类 参考

#include <scopedtypevariant.h>

+ ScopedTypeVariant 的协作图:

Public 类型

enum  Variant { Global, Local, Dummy }
 possible variant types 更多...
 

Public 成员函数

 ScopedTypeVariant ()
 default constructor for creating a variant of type Dummy 更多...
 
 ScopedTypeVariant (const Definition *d)
 constructor for creating a variant of type Global 更多...
 
 ScopedTypeVariant (const QCString &name)
 constructor for creating a variant of type Local 更多...
 
 ScopedTypeVariant (const ScopedTypeVariant &stv)
 copy constructor 更多...
 
 ScopedTypeVariant (ScopedTypeVariant &&stv) noexcept
 move constructor 更多...
 
ScopedTypeVariantoperator= (ScopedTypeVariant stv)
 assignment operator 更多...
 
 ~ScopedTypeVariant ()
 destructor 更多...
 
void setGlobal (const Definition *def)
 Turn the variant into a Global type 更多...
 
LocalDefsetLocal (const QCString &name)
 Turn the variant into a Local type 更多...
 
void setDummy ()
 Turn the variant into a Dummy type 更多...
 
Variant type () const
 
QCString name () const
 
LocalDeflocalDef () const
 
const DefinitionglobalDef () const
 

Private 属性

Variant m_variant
 
QCString m_name
 
union {
   const Definition *   globalDef
 
   LocalDef *   localDef
 
m_u
 

友元

void swap (ScopedTypeVariant &first, ScopedTypeVariant &second)
 swap function 更多...
 

详细描述

Variant class for a scoped type.

Variants:

  • Dummy: a type used for hiding a global type.
  • Local: a locally defined type (e.g. found inside a function)
  • Global: a globally defined type (processed by doxygen in an earlier pass).

在文件 scopedtypevariant.h45 行定义.

成员枚举类型说明

◆ Variant

possible variant types

枚举值
Global 
Local 
Dummy 

在文件 scopedtypevariant.h49 行定义.

50  {
51  Global,
52  Local,
53  Dummy
54  };

构造及析构函数说明

◆ ScopedTypeVariant() [1/5]

ScopedTypeVariant::ScopedTypeVariant ( )
inline

default constructor for creating a variant of type Dummy

在文件 scopedtypevariant.h56 行定义.

56  : m_variant(Dummy)
57  {
58  m_u.globalDef = 0;
59  }

引用了 m_u.

◆ ScopedTypeVariant() [2/5]

ScopedTypeVariant::ScopedTypeVariant ( const Definition d)
inlineexplicit

constructor for creating a variant of type Global

在文件 scopedtypevariant.h61 行定义.

62  {
63  if (d)
64  {
65  m_name = d->name();
66  m_variant = Global;
67  m_u.globalDef = d;
68  }
69  else
70  {
71  m_variant = Dummy;
72  m_u.globalDef = 0;
73  }
74  }

引用了 Dummy, Global, m_name, m_u, m_variant , 以及 Definition::name().

◆ ScopedTypeVariant() [3/5]

ScopedTypeVariant::ScopedTypeVariant ( const QCString name)
inlineexplicit

constructor for creating a variant of type Local

在文件 scopedtypevariant.h76 行定义.

77  {
78  m_name = name;
79  m_variant = Local;
80  m_u.localDef = new LocalDef;
81  }

引用了 Local, m_name, m_u, m_variant , 以及 name().

◆ ScopedTypeVariant() [4/5]

ScopedTypeVariant::ScopedTypeVariant ( const ScopedTypeVariant stv)
inline

copy constructor

在文件 scopedtypevariant.h83 行定义.

84  {
85  m_variant = stv.m_variant;
86  m_name = stv.m_name;
87  if (m_variant==Local)
88  {
89  m_u.localDef = new LocalDef(*stv.m_u.localDef);
90  }
91  else if (m_variant==Global)
92  {
93  m_u.globalDef = stv.m_u.globalDef;
94  }
95  }

引用了 Global, globalDef, Local, localDef, m_name, m_u , 以及 m_variant.

◆ ScopedTypeVariant() [5/5]

ScopedTypeVariant::ScopedTypeVariant ( ScopedTypeVariant &&  stv)
inlinenoexcept

move constructor

在文件 scopedtypevariant.h97 行定义.

98  {
99  swap(*this,stv);
100  }

引用了 swap.

◆ ~ScopedTypeVariant()

ScopedTypeVariant::~ScopedTypeVariant ( )
inline

destructor

在文件 scopedtypevariant.h108 行定义.

109  {
110  if (m_variant==Local)
111  {
112  delete m_u.localDef;
113  }
114  }

引用了 Local, m_u , 以及 m_variant.

成员函数说明

◆ globalDef()

const Definition* ScopedTypeVariant::globalDef ( ) const
inline

在文件 scopedtypevariant.h160 行定义.

160 { return m_variant==Global ? m_u.globalDef : 0; }

引用了 Global, m_u , 以及 m_variant.

◆ localDef()

LocalDef* ScopedTypeVariant::localDef ( ) const
inline

在文件 scopedtypevariant.h159 行定义.

159 { return m_variant==Local ? m_u.localDef : 0; }

引用了 Local, m_u , 以及 m_variant.

◆ name()

QCString ScopedTypeVariant::name ( ) const
inline

在文件 scopedtypevariant.h158 行定义.

158 { return m_name; }

引用了 m_name.

被这些函数引用 ScopedTypeVariant() , 以及 setLocal().

◆ operator=()

ScopedTypeVariant& ScopedTypeVariant::operator= ( ScopedTypeVariant  stv)
inline

assignment operator

在文件 scopedtypevariant.h102 行定义.

103  {
104  swap(*this,stv);
105  return *this;
106  }

引用了 swap.

◆ setDummy()

void ScopedTypeVariant::setDummy ( )
inline

Turn the variant into a Dummy type

在文件 scopedtypevariant.h147 行定义.

148  {
149  if (m_variant==Local)
150  {
151  delete m_u.localDef;
152  }
153  m_variant = Dummy;
154  m_name = "";
155  m_u.localDef=0;
156  }

引用了 Dummy, Local, m_name, m_u , 以及 m_variant.

◆ setGlobal()

void ScopedTypeVariant::setGlobal ( const Definition def)
inline

Turn the variant into a Global type

在文件 scopedtypevariant.h124 行定义.

125  {
126  if (m_variant==Local)
127  {
128  delete m_u.localDef;
129  }
130  m_variant = Global;
131  m_name = def->name();
132  m_u.globalDef = def;
133  }

引用了 Global, Local, m_name, m_u, m_variant , 以及 Definition::name().

◆ setLocal()

LocalDef* ScopedTypeVariant::setLocal ( const QCString name)
inline

Turn the variant into a Local type

在文件 scopedtypevariant.h135 行定义.

136  {
137  if (m_variant==Local)
138  {
139  delete m_u.localDef;
140  }
141  m_variant = Local;
142  m_name = name;
143  m_u.localDef = new LocalDef;
144  return m_u.localDef;
145  }

引用了 Local, m_name, m_u, m_variant , 以及 name().

◆ type()

Variant ScopedTypeVariant::type ( ) const
inline

在文件 scopedtypevariant.h157 行定义.

157 { return m_variant; }

引用了 m_variant.

友元及相关函数文档

◆ swap

void swap ( ScopedTypeVariant first,
ScopedTypeVariant second 
)
friend

swap function

在文件 scopedtypevariant.h116 行定义.

117  {
118  using std::swap; // enable ADL
119  swap(first.m_variant,second.m_variant);
120  swap(first.m_name,second.m_name);
121  swap(first.m_u.globalDef,second.m_u.globalDef);
122  }

被这些函数引用 operator=() , 以及 ScopedTypeVariant().

类成员变量说明

◆ globalDef

const Definition* ScopedTypeVariant::globalDef

在文件 scopedtypevariant.h167 行定义.

被这些函数引用 ScopedTypeVariant().

◆ localDef

LocalDef* ScopedTypeVariant::localDef

在文件 scopedtypevariant.h168 行定义.

被这些函数引用 ScopedTypeVariant().

◆ m_name

QCString ScopedTypeVariant::m_name
private

在文件 scopedtypevariant.h164 行定义.

被这些函数引用 name(), ScopedTypeVariant(), setDummy(), setGlobal() , 以及 setLocal().

◆ m_u

union { ... } ScopedTypeVariant::m_u

◆ m_variant

Variant ScopedTypeVariant::m_variant
private

该类的文档由以下文件生成:
ScopedTypeVariant::m_u
union ScopedTypeVariant::@3 m_u
ScopedTypeVariant::swap
friend void swap(ScopedTypeVariant &first, ScopedTypeVariant &second)
swap function
Definition: scopedtypevariant.h:116
ScopedTypeVariant::Global
@ Global
Definition: scopedtypevariant.h:51
Definition::name
virtual QCString name() const =0
ScopedTypeVariant::localDef
LocalDef * localDef
Definition: scopedtypevariant.h:168
LocalDef
Class representing a local class definition found while generating syntax highlighted code.
Definition: scopedtypevariant.h:27
ScopedTypeVariant::Local
@ Local
Definition: scopedtypevariant.h:52
ScopedTypeVariant::Dummy
@ Dummy
Definition: scopedtypevariant.h:53
ScopedTypeVariant::ScopedTypeVariant
ScopedTypeVariant()
default constructor for creating a variant of type Dummy
Definition: scopedtypevariant.h:56
ScopedTypeVariant::globalDef
const Definition * globalDef
Definition: scopedtypevariant.h:167
ScopedTypeVariant::name
QCString name() const
Definition: scopedtypevariant.h:158
ScopedTypeVariant::m_variant
Variant m_variant
Definition: scopedtypevariant.h:163
ScopedTypeVariant::m_name
QCString m_name
Definition: scopedtypevariant.h:164