Doxygen
MemberDefImpl类 参考
+ 类 MemberDefImpl 继承关系图:
+ MemberDefImpl 的协作图:

class  IMPL
 

Public 成员函数

 MemberDefImpl (const QCString &defFileName, int defLine, int defColumn, const QCString &type, const QCString &name, const QCString &args, const QCString &excp, Protection prot, Specifier virt, bool stat, Relationship related, MemberType t, const ArgumentList &tal, const ArgumentList &al, const QCString &metaData)
 
virtual ~MemberDefImpl ()
 
virtual DefType definitionType () const
 
virtual MemberDefresolveAlias ()
 
virtual const MemberDefresolveAlias () const
 
virtual CodeSymbolType codeSymbolType () const
 
virtual MemberDefdeepCopy () const
 
virtual void moveTo (Definition *)
 
virtual QCString getOutputFileBase () const
 
virtual QCString getReference () const
 
virtual QCString anchor () const
 
virtual QCString declaration () const
 
virtual QCString definition () const
 
virtual QCString typeString () const
 
virtual QCString argsString () const
 
virtual QCString excpString () const
 
virtual QCString bitfieldString () const
 
virtual QCString extraTypeChars () const
 
virtual const QCStringinitializer () const
 
virtual int initializerLines () const
 
virtual uint64 getMemberSpecifiers () const
 
virtual const MemberListgetSectionList (const Definition *) const
 
virtual QCString displayDefinition () const
 
virtual const ClassDefgetClassDef () const
 
virtual const FileDefgetFileDef () const
 
virtual const NamespaceDefgetNamespaceDef () const
 
virtual const GroupDefgetGroupDef () const
 
virtual ClassDefaccessorClass () const
 
virtual QCString getReadAccessor () const
 
virtual QCString getWriteAccessor () const
 
virtual Grouping::GroupPri_t getGroupPri () const
 
virtual QCString getGroupFileName () const
 
virtual int getGroupStartLine () const
 
virtual bool getGroupHasDocs () const
 
virtual QCString qualifiedName () const
 
virtual QCString objCMethodName (bool localLink, bool showStatic) const
 
virtual Protection protection () const
 
virtual Specifier virtualness (int count=0) const
 
virtual MemberType memberType () const
 
virtual QCString memberTypeName () const
 
virtual bool isSignal () const
 
virtual bool isSlot () const
 
virtual bool isVariable () const
 
virtual bool isEnumerate () const
 
virtual bool isEnumValue () const
 
virtual bool isTypedef () const
 
virtual bool isSequence () const
 
virtual bool isDictionary () const
 
virtual bool isFunction () const
 
virtual bool isFunctionPtr () const
 
virtual bool isDefine () const
 
virtual bool isFriend () const
 
virtual bool isDCOP () const
 
virtual bool isProperty () const
 
virtual bool isEvent () const
 
virtual bool isRelated () const
 
virtual bool isForeign () const
 
virtual bool isStatic () const
 
virtual bool isInline () const
 
virtual bool isExplicit () const
 
virtual bool isMutable () const
 
virtual bool isGettable () const
 
virtual bool isPrivateGettable () const
 
virtual bool isProtectedGettable () const
 
virtual bool isSettable () const
 
virtual bool isPrivateSettable () const
 
virtual bool isProtectedSettable () const
 
virtual bool isReadable () const
 
virtual bool isWritable () const
 
virtual bool isAddable () const
 
virtual bool isRemovable () const
 
virtual bool isRaisable () const
 
virtual bool isFinal () const
 
virtual bool isAbstract () const
 
virtual bool isOverride () const
 
virtual bool isInitonly () const
 
virtual bool isOptional () const
 
virtual bool isRequired () const
 
virtual bool isNonAtomic () const
 
virtual bool isCopy () const
 
virtual bool isAssign () const
 
virtual bool isRetain () const
 
virtual bool isWeak () const
 
virtual bool isStrong () const
 
virtual bool isEnumStruct () const
 
virtual bool isUnretained () const
 
virtual bool isNew () const
 
virtual bool isSealed () const
 
virtual bool isImplementation () const
 
virtual bool isExternal () const
 
virtual bool isTypeAlias () const
 
virtual bool isDefault () const
 
virtual bool isDelete () const
 
virtual bool isNoExcept () const
 
virtual bool isAttribute () const
 
virtual bool isUNOProperty () const
 
virtual bool isReadonly () const
 
virtual bool isBound () const
 
virtual bool isConstrained () const
 
virtual bool isTransient () const
 
virtual bool isMaybeVoid () const
 
virtual bool isMaybeDefault () const
 
virtual bool isMaybeAmbiguous () const
 
virtual bool isPublished () const
 
virtual bool isTemplateSpecialization () const
 
virtual bool isObjCMethod () const
 
virtual bool isObjCProperty () const
 
virtual bool isConstructor () const
 
virtual bool isDestructor () const
 
virtual bool hasOneLineInitializer () const
 
virtual bool hasMultiLineInitializer () const
 
virtual bool showInCallGraph () const
 
virtual bool isStrongEnumValue () const
 
virtual bool livesInsideEnum () const
 
virtual bool isSliceLocal () const
 
virtual bool isConstExpr () const
 
virtual int numberOfFlowKeyWords () const
 
virtual bool isFriendToHide () const
 
virtual bool isNotFriend () const
 
virtual bool isFunctionOrSignalSlot () const
 
virtual bool isRelatedOrFriend () const
 
virtual bool isLinkableInProject () const
 
virtual bool isLinkable () const
 
virtual bool hasDocumentation () const
 
virtual bool isDeleted () const
 
virtual bool isBriefSectionVisible () const
 
virtual bool isDetailedSectionVisible (MemberListContainer container) const
 
virtual bool hasDetailedDescription () const
 
virtual bool isFriendClass () const
 
virtual bool isDocumentedFriendClass () const
 
virtual const MemberDefreimplements () const
 
virtual const MemberVectorreimplementedBy () const
 
virtual bool isReimplementedBy (const ClassDef *cd) const
 
virtual ClassDefrelatedAlso () const
 
virtual bool hasDocumentedEnumValues () const
 
virtual const MemberDefgetAnonymousEnumType () const
 
virtual bool isDocsForDefinition () const
 
virtual const MemberDefgetEnumScope () const
 
virtual const MemberVectorenumFieldList () const
 
virtual void setEnumBaseType (const QCString &type)
 
virtual QCString enumBaseType () const
 
virtual bool hasExamples () const
 
virtual const ExampleListgetExamples () const
 
virtual bool isPrototype () const
 
virtual const ArgumentListargumentList () const
 
virtual ArgumentListargumentList ()
 
virtual const ArgumentListdeclArgumentList () const
 
virtual const ArgumentListtemplateArguments () const
 
virtual const ArgumentListsdefinitionTemplateParameterLists () const
 
virtual int getMemberGroupId () const
 
virtual MemberGroupgetMemberGroup () const
 
virtual bool fromAnonymousScope () const
 
virtual bool anonymousDeclShown () const
 
virtual MemberDeffromAnonymousMember () const
 
virtual bool hasCallGraph () const
 
virtual bool hasCallerGraph () const
 
virtual bool visibleMemberGroup (bool hideNoHeader) const
 
virtual bool hasReferencesRelation () const
 
virtual bool hasReferencedByRelation () const
 
virtual const MemberDeftemplateMaster () const
 
virtual QCString getScopeString () const
 
virtual ClassDefgetClassDefOfAnonymousType () const
 
virtual bool isTypedefValCached () const
 
virtual const ClassDefgetCachedTypedefVal () const
 
virtual QCString getCachedTypedefTemplSpec () const
 
virtual QCString getCachedResolvedTypedef () const
 
virtual MemberDefmemberDefinition () const
 
virtual MemberDefmemberDeclaration () const
 
virtual const MemberDefinheritsDocsFrom () const
 
virtual const MemberDefgetGroupAlias () const
 
virtual ClassDefcategory () const
 
virtual const MemberDefcategoryRelation () const
 
virtual QCString displayName (bool=TRUE) const
 
virtual QCString getDeclType () const
 
virtual StringVector getLabels (const Definition *container) const
 
virtual const ArgumentListtypeConstraints () const
 
virtual QCString requiresClause () const
 
virtual QCString documentation () const
 
virtual QCString briefDescription (bool abbr=FALSE) const
 
virtual QCString fieldType () const
 
virtual bool isReference () const
 
virtual QCString getDeclFileName () const
 
virtual int getDeclLine () const
 
virtual int getDeclColumn () const
 
virtual void setMemberType (MemberType t)
 
virtual void setDefinition (const QCString &d)
 
virtual void setFileDef (const FileDef *fd)
 
virtual void setAnchor ()
 
virtual void setProtection (Protection p)
 
virtual void setMemberSpecifiers (uint64 s)
 
virtual void mergeMemberSpecifiers (uint64 s)
 
virtual void setInitializer (const QCString &i)
 
virtual void setBitfields (const QCString &s)
 
virtual void setMaxInitLines (int lines)
 
virtual void setMemberClass (const ClassDef *cd)
 
virtual void setSectionList (const Definition *container, const MemberList *sl)
 
virtual void setGroupDef (const GroupDef *gd, Grouping::GroupPri_t pri, const QCString &fileName, int startLine, bool hasDocs, MemberDef *member=0)
 
virtual void setReadAccessor (const QCString &r)
 
virtual void setWriteAccessor (const QCString &w)
 
virtual void setTemplateSpecialization (bool b)
 
virtual void makeRelated ()
 
virtual void makeForeign ()
 
virtual void setInheritsDocsFrom (const MemberDef *md)
 
virtual void setTagInfo (const TagInfo *i)
 
virtual void setArgsString (const QCString &as)
 
virtual void setReimplements (const MemberDef *md)
 
virtual void insertReimplementedBy (const MemberDef *md)
 
virtual void setRelatedAlso (ClassDef *cd)
 
virtual void insertEnumField (const MemberDef *md)
 
virtual void setEnumScope (const MemberDef *md, bool livesInsideEnum=FALSE)
 
virtual void setEnumClassScope (const ClassDef *cd)
 
virtual void setDocumentedEnumValues (bool value)
 
virtual void setAnonymousEnumType (const MemberDef *md)
 
virtual bool addExample (const QCString &anchor, const QCString &name, const QCString &file)
 
virtual void setPrototype (bool p, const QCString &df, int line, int column)
 
virtual void setExplicitExternal (bool b, const QCString &df, int line, int column)
 
virtual void setDeclFile (const QCString &df, int line, int column)
 
virtual void moveArgumentList (std::unique_ptr< ArgumentList > al)
 
virtual void moveDeclArgumentList (std::unique_ptr< ArgumentList > al)
 
virtual void setDefinitionTemplateParameterLists (const ArgumentLists &lists)
 
virtual void setTypeConstraints (const ArgumentList &al)
 
virtual void setType (const QCString &t)
 
virtual void setAccessorType (ClassDef *cd, const QCString &t)
 
virtual void setNamespace (const NamespaceDef *nd)
 
virtual void setMemberGroup (MemberGroup *grp)
 
virtual void setMemberGroupId (int id)
 
virtual void makeImplementationDetail ()
 
virtual void setFromAnonymousScope (bool b) const
 
virtual void setFromAnonymousMember (MemberDef *m)
 
virtual void enableCallGraph (bool e)
 
virtual void enableCallerGraph (bool e)
 
virtual void enableReferencedByRelation (bool e)
 
virtual void enableReferencesRelation (bool e)
 
virtual void setTemplateMaster (const MemberDef *mt)
 
virtual void addListReference (Definition *d)
 
virtual void setDocsForDefinition (bool b)
 
virtual void setGroupAlias (const MemberDef *md)
 
virtual void cacheTypedefVal (const ClassDef *val, const QCString &templSpec, const QCString &resolvedType)
 
virtual void invalidateTypedefValCache ()
 
virtual void invalidateCachedArgumentTypes ()
 
virtual void setMemberDefinition (MemberDef *md)
 
virtual void setMemberDeclaration (MemberDef *md)
 
virtual void setAnonymousUsed () const
 
virtual void copyArgumentNames (const MemberDef *bmd)
 
virtual void setCategory (ClassDef *)
 
virtual void setCategoryRelation (const MemberDef *)
 
virtual void setDocumentation (const QCString &d, const QCString &docFile, int docLine, bool stripWhiteSpace=TRUE)
 
virtual void setBriefDescription (const QCString &b, const QCString &briefFile, int briefLine)
 
virtual void setInbodyDocumentation (const QCString &d, const QCString &inbodyFile, int inbodyLine)
 
virtual void setHidden (bool b)
 
virtual void setRequiresClause (const QCString &req)
 
virtual void incrementFlowKeyWordCount ()
 
virtual void writeDeclaration (OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, bool inGroup, int indentLevel, const ClassDef *inheritFrom=0, const QCString &inheritId=QCString()) const
 
virtual void writeDocumentation (const MemberList *ml, int memCount, int memTotal, OutputList &ol, const QCString &scopeName, const Definition *container, bool inGroup, bool showEnumValues=FALSE, bool showInline=FALSE) const
 
virtual void writeMemberDocSimple (OutputList &ol, const Definition *container) const
 
virtual void writeEnumDeclaration (OutputList &typeDecl, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd) const
 
virtual void writeTagFile (TextStream &) const
 
virtual void warnIfUndocumented () const
 
virtual void warnIfUndocumentedParams () const
 
virtual bool visibleInIndex () const
 
virtual void detectUndocumentedParams (bool hasParamCommand, bool hasReturnCommand) const
 
virtual MemberDefMutablecreateTemplateInstanceMember (const ArgumentList &formalArgs, const std::unique_ptr< ArgumentList > &actualArgs) const
 
virtual void findSectionsInDocumentation ()
 
virtual void writeLink (OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, bool onlyText=FALSE) const
 
virtual void resolveUnnamedParameters (const MemberDef *md)
 
- Public 成员函数 继承自 DefinitionMixin< MemberDefMutable >
 DefinitionMixin (const QCString &defFileName, int defLine, int defColumn, const QCString &name, const char *b=0, const char *d=0, bool isSymbol=TRUE)
 
virtual ~DefinitionMixin ()
 
virtual bool isAlias () const
 
virtual QCString name () const
 
virtual bool isAnonymous () const
 
virtual QCString localName () const
 
virtual QCString qualifiedName () const
 
virtual QCString symbolName () const
 
virtual QCString getSourceFileBase () const
 
virtual QCString getSourceAnchor () const
 
virtual QCString documentation () const
 
virtual int docLine () const
 
virtual QCString docFile () const
 
virtual QCString briefDescriptionAsTooltip () const
 
virtual int briefLine () const
 
virtual QCString inbodyDocumentation () const
 
virtual QCString inbodyFile () const
 
virtual int inbodyLine () const
 
virtual QCString briefFile () const
 
virtual QCString getDefFileName () const
 
virtual QCString getDefFileExtension () const
 
virtual int getDefLine () const
 
virtual int getDefColumn () const
 
virtual bool hasDocumentation () const
 
virtual bool hasUserDocumentation () const
 
virtual bool isVisibleInProject () const
 
virtual bool isVisible () const
 
virtual bool isHidden () const
 
virtual bool isArtificial () const
 
virtual QCString getReference () const
 
virtual bool isReference () const
 
virtual QCString externalReference (const QCString &relPath) const
 
virtual int getStartDefLine () const
 
virtual int getStartBodyLine () const
 
virtual int getEndBodyLine () const
 
virtual const FileDefgetBodyDef () const
 
virtual SrcLangExt getLanguage () const
 
virtual const GroupListpartOfGroups () const
 
virtual bool isLinkableViaGroup () const
 
virtual const RefItemVectorxrefListItems () const
 
virtual const DefinitionfindInnerCompound (const QCString &name) const
 
virtual DefinitiongetOuterScope () const
 
virtual const MemberVectorgetReferencesMembers () const
 
virtual const MemberVectorgetReferencedByMembers () const
 
virtual bool hasSections () const
 
virtual bool hasSources () const
 
virtual bool hasBriefDescription () const
 
virtual QCString id () const
 
virtual const SectionRefsgetSectionRefs () const
 
virtual void setName (const QCString &name)
 
virtual void setId (const QCString &name)
 
virtual void setDefFile (const QCString &df, int defLine, int defColumn)
 
virtual void setReference (const QCString &r)
 
virtual void addSectionsToDefinition (const std::vector< const SectionInfo * > &anchorList)
 
virtual void setBodySegment (int defLine, int bls, int ble)
 
virtual void setBodyDef (const FileDef *fd)
 
virtual void addSourceReferencedBy (const MemberDef *md)
 
virtual void addSourceReferences (const MemberDef *md)
 
virtual void setRefItems (const RefItemVector &sli)
 
virtual void mergeRefItems (Definition *def)
 
virtual void mergeReferences (const Definition *other)
 
virtual void mergeReferencedBy (const Definition *other)
 
virtual void addInnerCompound (const Definition *def)
 
virtual void setOuterScope (Definition *def)
 
virtual void setArtificial (bool b)
 
virtual void setLanguage (SrcLangExt lang)
 
virtual void writeSourceDef (OutputList &ol, const QCString &scopeName) const
 
virtual void writeInlineCode (OutputList &ol, const QCString &scopeName) const
 
virtual bool hasSourceRefs () const
 
virtual bool hasSourceReffedBy () const
 
virtual void writeSourceRefs (OutputList &ol, const QCString &scopeName) const
 
virtual void writeSourceReffedBy (OutputList &ol, const QCString &scopeName) const
 
virtual void makePartOfGroup (const GroupDef *gd)
 
virtual void writeNavigationPath (OutputList &ol) const
 
virtual QCString navigationPathAsString () const
 
virtual void writeQuickMemberLinks (OutputList &ol, const MemberDef *md) const
 
virtual void writeSummaryLinks (OutputList &ol) const
 
virtual QCString pathFragment () const
 
virtual void writeDocAnchorsToTagFile (TextStream &fs) const
 
virtual void setLocalName (const QCString &name)
 
virtual void addSectionsToIndex ()
 
virtual void writeToc (OutputList &ol, const LocalToc &lt) const
 
virtual void computeTooltip ()
 
virtual void _setSymbolName (const QCString &name)
 
virtual QCString _symbolName () const
 
- Public 成员函数 继承自 DefinitionMutable
virtual bool hasSourceRefs () const =0
 
virtual bool hasSourceReffedBy () const =0
 
virtual ~DefinitionMutable ()=default
 
- Public 成员函数 继承自 MemberDef
virtual ~MemberDef ()
 
ClassDefMutablegetClassDefMutable () const
 
- Public 成员函数 继承自 Definition
virtual bool isAlias () const =0
 
virtual QCString name () const =0
 
virtual bool isAnonymous () const =0
 
virtual QCString localName () const =0
 
virtual QCString symbolName () const =0
 
virtual QCString getSourceFileBase () const =0
 
virtual QCString getSourceAnchor () const =0
 
virtual int docLine () const =0
 
virtual QCString docFile () const =0
 
virtual QCString briefDescriptionAsTooltip () const =0
 
virtual int briefLine () const =0
 
virtual QCString inbodyDocumentation () const =0
 
virtual QCString inbodyFile () const =0
 
virtual int inbodyLine () const =0
 
virtual QCString briefFile () const =0
 
virtual QCString getDefFileName () const =0
 
virtual QCString getDefFileExtension () const =0
 
virtual int getDefLine () const =0
 
virtual int getDefColumn () const =0
 
virtual bool hasUserDocumentation () const =0
 
virtual bool isVisibleInProject () const =0
 
virtual bool isVisible () const =0
 
virtual bool isHidden () const =0
 
virtual bool isArtificial () const =0
 
virtual int getStartDefLine () const =0
 
virtual int getStartBodyLine () const =0
 
virtual int getEndBodyLine () const =0
 
virtual const FileDefgetBodyDef () const =0
 
virtual SrcLangExt getLanguage () const =0
 Returns the programming language this definition was written in. 更多...
 
virtual const GroupListpartOfGroups () const =0
 
virtual bool isLinkableViaGroup () const =0
 
virtual const RefItemVectorxrefListItems () const =0
 
virtual DefinitiongetOuterScope () const =0
 
virtual const MemberVectorgetReferencesMembers () const =0
 
virtual const MemberVectorgetReferencedByMembers () const =0
 
virtual bool hasSections () const =0
 
virtual bool hasSources () const =0
 
virtual bool hasBriefDescription () const =0
 returns TRUE if this class has a brief description 更多...
 
virtual QCString id () const =0
 
virtual const SectionRefsgetSectionRefs () const =0
 returns the section dictionary, only of importance for pagedef 更多...
 
virtual QCString navigationPathAsString () const =0
 
virtual QCString pathFragment () const =0
 
virtual QCString _symbolName () const =0
 
virtual ~Definition ()=default
 

Private 成员函数

void _computeLinkableInProject ()
 
void _computeIsConstructor ()
 
void _computeIsDestructor ()
 
void _writeGroupInclude (OutputList &ol, bool inGroup) const
 
void _writeMultiLineInitializer (OutputList &ol, const QCString &scopeName) const
 
void _writeCallGraph (OutputList &ol) const
 
void _writeCallerGraph (OutputList &ol) const
 
void _writeReimplements (OutputList &ol) const
 
bool _isReimplements () const
 
void _writeReimplementedBy (OutputList &ol) const
 
size_t _countReimplementedBy () const
 
void _writeExamples (OutputList &ol) const
 
void _writeTypeConstraints (OutputList &ol) const
 
void _writeEnumValues (OutputList &ol, const Definition *container, const QCString &cfname, const QCString &ciname, const QCString &cname) const
 
void _writeCategoryRelation (OutputList &ol) const
 
void _writeTagData (const DefType) const
 
void _writeTemplatePrefix (OutputList &ol, const Definition *def, const ArgumentList &al, bool writeReqClause=true) const
 
bool _hasVisibleCallGraph () const
 
bool _hasVisibleCallerGraph () const
 
 MemberDefImpl (const MemberDefImpl &)
 
MemberDefImploperator= (const MemberDefImpl &)
 

Private 属性

IMPLm_impl
 
uchar m_isLinkableCached
 
uchar m_isConstructorCached
 
uchar m_isDestructorCached
 

额外继承的成员函数

- Public 类型 继承自 Definition
enum  DefType {
  TypeClass = 0, TypeFile = 1, TypeNamespace = 2, TypeMember = 3,
  TypeGroup = 4, TypePackage = 5, TypePage = 6, TypeDir = 7,
  TypeConcept = 8
}
 
- Protected 成员函数 继承自 DefinitionMixin< MemberDefMutable >
 DefinitionMixin (const DefinitionMixin &def)=default
 

详细描述

在文件 memberdef.cpp51 行定义.

构造及析构函数说明

◆ MemberDefImpl() [1/2]

MemberDefImpl::MemberDefImpl ( const QCString df,
int  dl,
int  dc,
const QCString t,
const QCString na,
const QCString a,
const QCString e,
Protection  p,
Specifier  v,
bool  s,
Relationship  r,
MemberType  mt,
const ArgumentList tal,
const ArgumentList al,
const QCString meta 
)

Creates a new member definition.

参数
dfFile containing the definition of this member.
dlLine at which the member definition was found.
dcColumn at which the member definition was found.
tA string representing the type of the member.
naA string representing the name of the member.
aA string representing the arguments of the member.
eA string representing the throw clause of the members.
pThe protection context of the member, possible values are: Public, Protected, Private.
vThe degree of 'virtualness' of the member, possible values are: Normal, Virtual, Pure.
sA boolean that is true iff the member is static.
rThe relationship between the class and the member.
mtThe kind of member. See MemberType for a list of all types.
talThe template arguments of this member.
alThe arguments of this member. This is a structured form of the string past as argument a.
metaSlice metadata.

在文件 memberdef.cpp1387 行定义.

1392 {
1393  //printf("MemberDefImpl::MemberDef(%s)\n",na);
1395  m_impl->init(this,t,a,e,p,v,s,r,mt,tal,al,meta);
1396  m_isLinkableCached = 0;
1399 }

引用了 MemberDefImpl::IMPL::init(), m_impl, m_isConstructorCached, m_isDestructorCached , 以及 m_isLinkableCached.

被这些函数引用 deepCopy().

◆ ~MemberDefImpl()

MemberDefImpl::~MemberDefImpl ( )
virtual

Destroys the member definition.

在文件 memberdef.cpp1444 行定义.

1445 {
1446  delete m_impl;
1447  //printf("%p: ~MemberDef()\n",this);
1448  m_impl=0;
1449 }

引用了 m_impl.

◆ MemberDefImpl() [2/2]

MemberDefImpl::MemberDefImpl ( const MemberDefImpl md)
private

在文件 memberdef.cpp1401 行定义.

1401  : DefinitionMixin(md)
1402 {
1404  m_isLinkableCached = 0;
1407 }

引用了 m_impl, m_isConstructorCached, m_isDestructorCached , 以及 m_isLinkableCached.

成员函数说明

◆ _computeIsConstructor()

void MemberDefImpl::_computeIsConstructor ( )
private

在文件 memberdef.cpp4400 行定义.

4401 {
4402  m_isConstructorCached=1; // FALSE
4403  if (getClassDef())
4404  {
4405  if (m_impl->isDMember) // for D
4406  {
4407  m_isConstructorCached = name()=="this" ? 2 : 1;
4408  return;
4409  }
4410  else if (getLanguage()==SrcLangExt_PHP) // for PHP
4411  {
4412  m_isConstructorCached = name()=="__construct" ? 2 : 1;
4413  return;
4414  }
4415  else if (name()=="__init__" &&
4416  getLanguage()==SrcLangExt_Python) // for Python
4417  {
4418  m_isConstructorCached = 2; // TRUE
4419  return;
4420  }
4421  else // for other languages
4422  {
4423  QCString locName = getClassDef()->localName();
4424  int i=locName.find('<');
4425  if (i==-1) // not a template class
4426  {
4427  m_isConstructorCached = name()==locName ? 2 : 1;
4428  }
4429  else
4430  {
4431  m_isConstructorCached = name()==locName.left(i) ? 2 : 1;
4432  }
4433  return;
4434  }
4435  }
4436 }

引用了 QCString::find(), getClassDef(), DefinitionMixin< MemberDefMutable >::getLanguage(), MemberDefImpl::IMPL::isDMember, QCString::left(), Definition::localName(), m_impl, m_isConstructorCached, DefinitionMixin< MemberDefMutable >::name(), SrcLangExt_PHP , 以及 SrcLangExt_Python.

被这些函数引用 isConstructor().

◆ _computeIsDestructor()

void MemberDefImpl::_computeIsDestructor ( )
private

在文件 memberdef.cpp4450 行定义.

4451 {
4452  bool isDestructor;
4453  if (m_impl->isDMember) // for D
4454  {
4455  isDestructor = name()=="~this";
4456  }
4457  else if (getLanguage()==SrcLangExt_PHP) // for PHP
4458  {
4459  isDestructor = name()=="__destruct";
4460  }
4461  else if (name()=="__del__" &&
4462  getLanguage()==SrcLangExt_Python) // for Python
4463  {
4465  }
4466  else // other languages
4467  {
4468  isDestructor =
4469  (name().find('~')!=-1 || name().find('!')!=-1) // The ! is for C++/CLI
4470  && name().find("operator")==-1;
4471  }
4473 }

引用了 QCString::find(), DefinitionMixin< MemberDefMutable >::getLanguage(), isDestructor(), MemberDefImpl::IMPL::isDMember, m_impl, m_isDestructorCached, DefinitionMixin< MemberDefMutable >::name(), SrcLangExt_PHP, SrcLangExt_Python , 以及 TRUE.

被这些函数引用 isDestructor().

◆ _computeLinkableInProject()

void MemberDefImpl::_computeLinkableInProject ( )
private

在文件 memberdef.cpp1638 行定义.

1639 {
1640  static bool extractStatic = Config_getBool(EXTRACT_STATIC);
1641  static bool extractPrivateVirtual = Config_getBool(EXTRACT_PRIV_VIRTUAL);
1642  m_isLinkableCached = 2; // linkable
1643  //printf("MemberDefImpl::isLinkableInProject(name=%s)\n",qPrint(name()));
1644  if (isHidden())
1645  {
1646  //printf("is hidden\n");
1647  m_isLinkableCached = 1;
1648  return;
1649  }
1650  if (templateMaster())
1651  {
1652  //printf("has template master\n");
1654  return;
1655  }
1656  if (isAnonymous())
1657  {
1658  //printf("name invalid\n");
1659  m_isLinkableCached = 1; // not a valid or a dummy name
1660  return;
1661  }
1662  if (!hasDocumentation() || isReference())
1663  {
1664  //printf("no docs or reference\n");
1665  m_isLinkableCached = 1; // no documentation
1666  return;
1667  }
1668  const GroupDef *groupDef = getGroupDef();
1669  const ClassDef *classDef = getClassDef();
1670  if (groupDef && !groupDef->isLinkableInProject())
1671  {
1672  //printf("group but group not linkable!\n");
1673  m_isLinkableCached = 1; // group but group not linkable
1674  return;
1675  }
1676  if (!groupDef && classDef && !classDef->isLinkableInProject())
1677  {
1678  //printf("in a class but class not linkable!\n");
1679  m_isLinkableCached = 1; // in class but class not linkable
1680  return;
1681  }
1682  const NamespaceDef *nspace = getNamespaceDef();
1683  const FileDef *fileDef = getFileDef();
1684  if (!groupDef && nspace && !m_impl->related && !nspace->isLinkableInProject()
1685  && (fileDef==0 || !fileDef->isLinkableInProject()))
1686  {
1687  //printf("in a namespace but namespace not linkable!\n");
1688  m_isLinkableCached = 1; // in namespace but namespace not linkable
1689  return;
1690  }
1691  if (!groupDef && !nspace &&
1692  !m_impl->related && !classDef &&
1693  fileDef && !fileDef->isLinkableInProject())
1694  {
1695  //printf("in a file but file not linkable!\n");
1696  m_isLinkableCached = 1; // in file (and not in namespace) but file not linkable
1697  return;
1698  }
1700  !(m_impl->prot==Private && m_impl->virt!=Normal && extractPrivateVirtual))
1701  {
1702  //printf("private and invisible!\n");
1703  m_isLinkableCached = 1; // hidden due to protection
1704  return;
1705  }
1706  if (m_impl->stat && classDef==0 && !extractStatic)
1707  {
1708  //printf("static and invisible!\n");
1709  m_isLinkableCached = 1; // hidden due to staticness
1710  return;
1711  }
1712  //printf("linkable!\n");
1713  return; // linkable!
1714 }

引用了 Config_getBool, getClassDef(), getFileDef(), getGroupDef(), getNamespaceDef(), hasDocumentation(), DefinitionMixin< MemberDefMutable >::isAnonymous(), DefinitionMixin< MemberDefMutable >::isHidden(), NamespaceDef::isLinkableInProject(), GroupDef::isLinkableInProject(), FileDef::isLinkableInProject(), MemberDef::isLinkableInProject(), ClassDef::isLinkableInProject(), isReference(), m_impl, m_isLinkableCached, MemberType_Friend, MemberDefImpl::IMPL::mtype, Normal, Private, MemberDefImpl::IMPL::prot, protectionLevelVisible(), MemberDefImpl::IMPL::related, MemberDefImpl::IMPL::stat, templateMaster() , 以及 MemberDefImpl::IMPL::virt.

被这些函数引用 isLinkableInProject().

◆ _countReimplementedBy()

size_t MemberDefImpl::_countReimplementedBy ( ) const
private

在文件 memberdef.cpp2852 行定义.

2853 {
2854  const MemberVector &bml=reimplementedBy();
2855  size_t count=0;
2856  for (const auto &bmd : bml)
2857  {
2858  const ClassDef *bcd=bmd->getClassDef();
2859  // count the members that directly inherit from md and for
2860  // which the member and class are visible in the docs.
2861  if ( bcd && bmd->isLinkable() && bcd->isLinkable() )
2862  {
2863  count++;
2864  }
2865  }
2866  return count;
2867 }

引用了 ClassDef::isLinkable() , 以及 reimplementedBy().

被这些函数引用 _writeReimplementedBy() , 以及 hasDetailedDescription().

◆ _hasVisibleCallerGraph()

bool MemberDefImpl::_hasVisibleCallerGraph ( ) const
private

在文件 memberdef.cpp5386 行定义.

5387 {
5388  bool enabled = m_impl->hasCallerGraph &&
5389  (isFunction() || isSlot() || isSignal()) &&
5390  Config_getBool(HAVE_DOT);
5391  if (enabled)
5392  {
5393  bool trivial = DotCallGraph::isTrivial(this,TRUE);
5394  return !trivial;
5395  }
5396  return FALSE;
5397 }

引用了 Config_getBool, FALSE, MemberDefImpl::IMPL::hasCallerGraph, isFunction(), isSignal(), isSlot(), DotCallGraph::isTrivial(), m_impl , 以及 TRUE.

被这些函数引用 _writeCallerGraph() , 以及 hasDetailedDescription().

◆ _hasVisibleCallGraph()

bool MemberDefImpl::_hasVisibleCallGraph ( ) const
private

在文件 memberdef.cpp5368 行定义.

5369 {
5370  bool enabled = m_impl->hasCallGraph &&
5371  (isFunction() || isSlot() || isSignal()) &&
5372  Config_getBool(HAVE_DOT);
5373  if (enabled)
5374  {
5375  bool trivial = DotCallGraph::isTrivial(this,FALSE);
5376  return !trivial;
5377  }
5378  return FALSE;
5379 }

引用了 Config_getBool, FALSE, MemberDefImpl::IMPL::hasCallGraph, isFunction(), isSignal(), isSlot(), DotCallGraph::isTrivial() , 以及 m_impl.

被这些函数引用 _writeCallGraph() , 以及 hasDetailedDescription().

◆ _isReimplements()

bool MemberDefImpl::_isReimplements ( ) const
private

在文件 memberdef.cpp2779 行定义.

2780 {
2781  const MemberDef *bmd=reimplements();
2782  const ClassDef *bcd=0;
2783  if (bmd && (bcd=bmd->getClassDef()))
2784  {
2785  // write class that contains a member that is reimplemented by this one
2786  if (bcd->isLinkable())
2787  {
2788  return true;
2789  }
2790  }
2791  return false;
2792 }

引用了 MemberDef::getClassDef(), ClassDef::isLinkable() , 以及 reimplements().

被这些函数引用 hasDetailedDescription().

◆ _writeCallerGraph()

void MemberDefImpl::_writeCallerGraph ( OutputList ol) const
private

在文件 memberdef.cpp2757 行定义.

2758 {
2759  if (_hasVisibleCallerGraph())
2760  {
2761  DotCallGraph callerGraph(this, TRUE);
2762  if (callerGraph.isTooBig())
2763  {
2764  warn_uncond("Caller graph for '%s' not generated, too many nodes (%d), threshold is %d. Consider increasing DOT_GRAPH_MAX_NODES.\n",
2765  qPrint(qualifiedName()), callerGraph.numNodes(), Config_getInt(DOT_GRAPH_MAX_NODES));
2766  }
2767  else if (!callerGraph.isTrivial())
2768  {
2769  msg("Generating caller graph for function %s\n",qPrint(qualifiedName()));
2771  ol.startCallGraph();
2773  ol.endCallGraph(callerGraph);
2774  ol.enableAll();
2775  }
2776  }
2777 }

引用了 _hasVisibleCallerGraph(), Config_getInt, OutputList::disable(), OutputList::enableAll(), OutputList::endCallGraph(), DotCallGraph::isTooBig(), DotCallGraph::isTrivial(), OutputGenerator::Man, msg(), DotCallGraph::numNodes(), OutputList::parseText(), qPrint(), qualifiedName(), OutputList::startCallGraph(), theTranslator, Translator::trCallerGraph(), TRUE , 以及 warn_uncond().

被这些函数引用 writeDocumentation().

◆ _writeCallGraph()

void MemberDefImpl::_writeCallGraph ( OutputList ol) const
private

在文件 memberdef.cpp2734 行定义.

2735 {
2736  // write call graph
2737  if (_hasVisibleCallGraph())
2738  {
2739  DotCallGraph callGraph(this,FALSE);
2740  if (callGraph.isTooBig())
2741  {
2742  warn_uncond("Call graph for '%s' not generated, too many nodes (%d), threshold is %d. Consider increasing DOT_GRAPH_MAX_NODES.\n",
2743  qPrint(qualifiedName()), callGraph.numNodes(), Config_getInt(DOT_GRAPH_MAX_NODES));
2744  }
2745  else if (!callGraph.isTrivial())
2746  {
2747  msg("Generating call graph for function %s\n",qPrint(qualifiedName()));
2749  ol.startCallGraph();
2751  ol.endCallGraph(callGraph);
2752  ol.enableAll();
2753  }
2754  }
2755 }

引用了 _hasVisibleCallGraph(), Config_getInt, OutputList::disable(), OutputList::enableAll(), OutputList::endCallGraph(), FALSE, DotCallGraph::isTooBig(), DotCallGraph::isTrivial(), OutputGenerator::Man, msg(), DotCallGraph::numNodes(), OutputList::parseText(), qPrint(), qualifiedName(), OutputList::startCallGraph(), theTranslator, Translator::trCallGraph() , 以及 warn_uncond().

被这些函数引用 writeDocumentation().

◆ _writeCategoryRelation()

void MemberDefImpl::_writeCategoryRelation ( OutputList ol) const
private

在文件 memberdef.cpp2928 行定义.

2929 {
2930  if (getClassDef()) // this should be a member of a class/category
2931  {
2932  //printf("%s: category %s relation %s class=%s categoryOf=%s\n",
2933  // qPrint(name()),
2934  // m_impl->category ? qPrint(m_impl->category->name()) : "<none>",
2935  // m_impl->categoryRelation ? qPrint(m_impl->categoryRelation->name()) : "<none>",
2936  // qPrint(m_impl->classDef->name()),
2937  // m_impl->classDef->categoryOf() ? qPrint(m_impl->classDef->categoryOf()->name()) : "<none>"
2938  // );
2939  QCString text;
2940  QCString ref;
2941  QCString file;
2942  QCString anc;
2943  QCString name;
2944  int i=-1;
2946  {
2947  if (m_impl->category)
2948  {
2949  // this member is in a normal class and implements method categoryRelation from category
2950  // so link to method 'categoryRelation' with 'provided by category 'category' text.
2953  }
2954  else if (getClassDef()->categoryOf())
2955  {
2956  // this member is part of a category so link to the corresponding class member of the class we extend
2957  // so link to method 'categoryRelation' with 'extends class 'classDef->categoryOf()'
2958  text = theTranslator->trExtendsClass();
2960  }
2961  i=text.find("@0");
2962  if (i!=-1)
2963  {
2964  const MemberDef *md = m_impl->categoryRelation;
2965  ref = md->getReference();
2966  file = md->getOutputFileBase();
2967  anc = md->anchor();
2968  }
2969  }
2970  if (i!=-1 && !name.isEmpty())
2971  {
2972  ol.startParagraph();
2973  ol.parseText(text.left(i));
2974  ol.writeObjectLink(ref,file,anc,name);
2975  ol.parseText(text.mid(i+2));
2976  ol.endParagraph();
2977  }
2978  }
2979 }

引用了 MemberDef::anchor(), MemberDefImpl::IMPL::category, ClassDef::categoryOf(), MemberDefImpl::IMPL::categoryRelation, ClassDef::displayName(), OutputList::endParagraph(), QCString::find(), getClassDef(), MemberDef::getOutputFileBase(), MemberDef::getReference(), QCString::isEmpty(), MemberDef::isLinkable(), QCString::left(), m_impl, QCString::mid(), DefinitionMixin< MemberDefMutable >::name(), OutputList::parseText(), OutputList::startParagraph(), theTranslator, Translator::trExtendsClass(), Translator::trProvidedByCategory() , 以及 OutputList::writeObjectLink().

被这些函数引用 writeDocumentation().

◆ _writeEnumValues()

void MemberDefImpl::_writeEnumValues ( OutputList ol,
const Definition container,
const QCString cfname,
const QCString ciname,
const QCString cname 
) const
private

在文件 memberdef.cpp3002 行定义.

3005 {
3006  // For enum, we also write the documented enum values
3007  if (isEnumerate())
3008  {
3009  bool first=TRUE;
3010  //printf("** %s: enum values=%zu\n",qPrint(name()),enumFieldList().size());
3011  for (const auto &fmd : enumFieldList())
3012  {
3013  //printf("Enum %p: isLinkable()=%d\n",fmd,fmd->isLinkable());
3014  if (fmd->isLinkable())
3015  {
3016  if (first)
3017  {
3019  }
3020 
3021  ol.startDescTableRow();
3022  ol.addIndexItem(fmd->name(),ciname);
3023  ol.addIndexItem(ciname,fmd->name());
3024 
3025  ol.startDescTableTitle();
3026  ol.startDoxyAnchor(cfname,cname,fmd->anchor(),fmd->name(),fmd->argsString());
3027  first=FALSE;
3028  ol.docify(fmd->name());
3030  ol.writeString(" ");
3031  ol.enableAll();
3032  ol.endDoxyAnchor(cfname,fmd->anchor());
3033  ol.endDescTableTitle();
3034  ol.startDescTableData();
3035 
3036  bool hasBrief = !fmd->briefDescription().isEmpty();
3037  bool hasDetails = !fmd->documentation().isEmpty();
3038 
3039  if (hasBrief)
3040  {
3041  ol.generateDoc(fmd->briefFile(),fmd->briefLine(),
3042  getOuterScope()?getOuterScope():container,
3043  fmd,fmd->briefDescription(),TRUE,FALSE,
3044  QCString(),FALSE,FALSE,Config_getBool(MARKDOWN_SUPPORT));
3045  }
3046  // FIXME:PARA
3047  //if (!fmd->briefDescription().isEmpty() &&
3048  // !fmd->documentation().isEmpty())
3049  //{
3050  // ol.newParagraph();
3051  //}
3052  if (hasDetails)
3053  {
3054  ol.generateDoc(fmd->docFile(),fmd->docLine(),
3055  getOuterScope()?getOuterScope():container,
3056  fmd,fmd->documentation()+"\n",TRUE,FALSE,
3057  QCString(),FALSE,FALSE,Config_getBool(MARKDOWN_SUPPORT));
3058  }
3059  ol.endDescTableData();
3060  ol.endDescTableRow();
3061  }
3062  }
3063  if (!first)
3064  {
3065  ol.endDescTable();
3066  }
3067  }
3068 }

引用了 OutputList::addIndexItem(), Definition::briefDescription(), Config_getBool, OutputList::disableAllBut(), OutputList::docify(), Definition::documentation(), OutputList::enableAll(), OutputList::endDescTable(), OutputList::endDescTableData(), OutputList::endDescTableRow(), OutputList::endDescTableTitle(), OutputList::endDoxyAnchor(), enumFieldList(), FALSE, OutputList::generateDoc(), DefinitionMixin< MemberDefMutable >::getOuterScope(), isEnumerate(), OutputGenerator::Man, OutputList::startDescTable(), OutputList::startDescTableData(), OutputList::startDescTableRow(), OutputList::startDescTableTitle(), OutputList::startDoxyAnchor(), theTranslator, Translator::trEnumerationValues(), TRUE , 以及 OutputList::writeString().

被这些函数引用 writeDocumentation().

◆ _writeExamples()

void MemberDefImpl::_writeExamples ( OutputList ol) const
private

在文件 memberdef.cpp2981 行定义.

2982 {
2983  // write the list of examples that use this member
2984  if (hasExamples())
2985  {
2986  ol.startExamples();
2987  ol.startDescForItem();
2989  ol.endDescForItem();
2990  ol.endExamples();
2991  }
2992 }

引用了 OutputList::endDescForItem(), OutputList::endExamples(), MemberDefImpl::IMPL::examples, hasExamples(), m_impl, OutputList::startDescForItem(), OutputList::startExamples() , 以及 writeExamples().

被这些函数引用 writeDocumentation().

◆ _writeGroupInclude()

void MemberDefImpl::_writeGroupInclude ( OutputList ol,
bool  inGroup 
) const
private

在文件 memberdef.cpp3149 行定义.

3150 {
3151  // only write out the include file if this is not part of a class or file
3152  // definition
3153  static bool showGroupedMembInc = Config_getBool(SHOW_GROUPED_MEMB_INC);
3154  const FileDef *fd = getFileDef();
3155  QCString nm;
3156  if (fd) nm = getFileDef()->docName();
3157  if (inGroup && fd && showGroupedMembInc && !nm.isEmpty())
3158  {
3159  ol.startParagraph();
3160  ol.startTypewriter();
3161  SrcLangExt lang = getLanguage();
3162  bool isIDLorJava = lang==SrcLangExt_IDL || lang==SrcLangExt_Java;
3163  if (isIDLorJava)
3164  {
3165  ol.docify("import ");
3166  }
3167  else
3168  {
3169  ol.docify("#include ");
3170  }
3171 
3172  if (isIDLorJava) ol.docify("\""); else ol.docify("<");
3173 
3174  if (fd->isLinkable())
3175  {
3176  ol.writeObjectLink(fd->getReference(),fd->getOutputFileBase(),fd->anchor(),nm);
3177  }
3178  else
3179  {
3180  ol.docify(nm);
3181  }
3182 
3183  if (isIDLorJava) ol.docify("\""); else ol.docify(">");
3184 
3185  ol.endTypewriter();
3186  ol.endParagraph();
3187  }
3188 }

引用了 FileDef::anchor(), Config_getBool, OutputList::docify(), FileDef::docName(), OutputList::endParagraph(), OutputList::endTypewriter(), getFileDef(), DefinitionMixin< MemberDefMutable >::getLanguage(), FileDef::getOutputFileBase(), Definition::getReference(), QCString::isEmpty(), FileDef::isLinkable(), SrcLangExt_IDL, SrcLangExt_Java, OutputList::startParagraph(), OutputList::startTypewriter() , 以及 OutputList::writeObjectLink().

被这些函数引用 writeDocumentation().

◆ _writeMultiLineInitializer()

void MemberDefImpl::_writeMultiLineInitializer ( OutputList ol,
const QCString scopeName 
) const
private

在文件 memberdef.cpp3190 行定义.

3191 {
3192  //printf("md=%s initLines=%d init='%s'\n",qPrint(name()),initLines,qPrint(init));
3193  ol.startBold();
3196  else
3198  ol.endBold();
3199  QCString langCorrected = getDefFileExtension();
3201  if (srcLangExt == SrcLangExt_Lex)
3202  {
3203  langCorrected = ".doxygen_lex_c";
3204  srcLangExt = SrcLangExt_Cpp;
3205  }
3206  auto intf = Doxygen::parserManager->getCodeParser(langCorrected);
3207  intf->resetCodeParserState();
3208  ol.startCodeFragment("DoxyCode");
3209  intf->parseCode(ol,scopeName,m_impl->initializer,srcLangExt,FALSE,QCString(),const_cast<FileDef*>(getFileDef()),
3210  -1,-1,TRUE,this,FALSE,this);
3211  ol.endCodeFragment("DoxyCode");
3212 }

引用了 OutputList::endBold(), OutputList::endCodeFragment(), FALSE, ParserManager::getCodeParser(), DefinitionMixin< MemberDefMutable >::getDefFileExtension(), getFileDef(), getLanguageFromFileName(), MemberDefImpl::IMPL::initializer, m_impl, MemberType_Define, MemberDefImpl::IMPL::mtype, Doxygen::parserManager, OutputList::parseText(), SrcLangExt_Cpp, SrcLangExt_Lex, OutputList::startBold(), OutputList::startCodeFragment(), theTranslator, Translator::trDefineValue(), Translator::trInitialValue() , 以及 TRUE.

被这些函数引用 writeDocumentation().

◆ _writeReimplementedBy()

void MemberDefImpl::_writeReimplementedBy ( OutputList ol) const
private

在文件 memberdef.cpp2869 行定义.

2870 {
2871  const MemberVector &bml=reimplementedBy();
2872  size_t count = _countReimplementedBy();
2873  if (count>0)
2874  {
2875  auto replaceFunc = [&bml,&ol](size_t entryIndex)
2876  {
2877  size_t cnt=0;
2878  auto it = bml.begin();
2879  // find the entryIndex-th documented entry in the inheritance list.
2880  const MemberDef *bmd = 0;
2881  const ClassDef *bcd = 0;
2882  while (it!=bml.end())
2883  {
2884  bmd = *it;
2885  bcd = bmd->getClassDef();
2886  if ( bmd->isLinkable() && bcd->isLinkable())
2887  {
2888  if (cnt==entryIndex) break;
2889  cnt++;
2890  }
2891  ++it;
2892  }
2893 
2894  if (bcd && bmd) // write link for marker
2895  {
2896  //ol.writeObjectLink(bcd->getReference(),bcd->getOutputFileBase(),
2897  // bmd->anchor(),bcd->name());
2899  bmd->anchor(),bcd->displayName());
2900 
2901  if (bmd->isLinkableInProject() )
2902  {
2903  writePageRef(ol,bmd->getOutputFileBase(),bmd->anchor());
2904  }
2905  }
2906  };
2907 
2908  QCString reimplInLine;
2909  if (m_impl->virt==Pure || (getClassDef() && getClassDef()->compoundType()==ClassDef::Interface))
2910  {
2911  reimplInLine = theTranslator->trImplementedInList((int)count);
2912  }
2913  else
2914  {
2915  reimplInLine = theTranslator->trReimplementedInList((int)count);
2916  }
2917 
2918  // write the list of classes that overwrite this member
2919  ol.startParagraph();
2920  writeMarkerList(ol,
2921  reimplInLine.str(),
2922  count,
2923  replaceFunc);
2924  ol.endParagraph();
2925  }
2926 }

引用了 _countReimplementedBy(), MemberDef::anchor(), MemberVector::begin(), ClassDef::displayName(), MemberVector::end(), OutputList::endParagraph(), MemberDef::getClassDef(), getClassDef(), MemberDef::getOutputFileBase(), MemberDef::getReference(), ClassDef::Interface, MemberDef::isLinkable(), ClassDef::isLinkable(), MemberDef::isLinkableInProject(), m_impl, Pure, reimplementedBy(), OutputList::startParagraph(), QCString::str(), theTranslator, Translator::trImplementedInList(), Translator::trReimplementedInList(), MemberDefImpl::IMPL::virt, writeMarkerList(), OutputList::writeObjectLink() , 以及 writePageRef().

被这些函数引用 writeDocumentation().

◆ _writeReimplements()

void MemberDefImpl::_writeReimplements ( OutputList ol) const
private

在文件 memberdef.cpp2793 行定义.

2794 {
2795  const MemberDef *bmd=reimplements();
2796  const ClassDef *bcd=0;
2797  if (bmd && (bcd=bmd->getClassDef()))
2798  {
2799  // write class that contains a member that is reimplemented by this one
2800  if (bcd->isLinkable())
2801  {
2802  ol.startParagraph();
2803  QCString reimplFromLine;
2804  if (bmd->virtualness()!=Pure && bcd->compoundType()!=ClassDef::Interface)
2805  {
2806  reimplFromLine = theTranslator->trReimplementedFromList(1);
2807  }
2808  else
2809  {
2810  reimplFromLine = theTranslator->trImplementedFromList(1);
2811  }
2812  int markerPos = reimplFromLine.find("@0");
2813  if (markerPos!=-1) // should always pass this.
2814  {
2815  ol.parseText(reimplFromLine.left(markerPos)); //text left from marker
2816  if (bmd->isLinkable()) // replace marker with link
2817  {
2818  //Definition *bd=bmd->group;
2819  //if (bd==0) bd=bcd;
2821  bmd->anchor(),bcd->displayName());
2822 
2823  //ol.writeObjectLink(bcd->getReference(),bcd->getOutputFileBase(),
2824  // bmd->anchor(),bcd->name());
2825  if ( bmd->isLinkableInProject() )
2826  {
2827  writePageRef(ol,bmd->getOutputFileBase(),bmd->anchor());
2828  }
2829  }
2830  else
2831  {
2833  QCString(),bcd->displayName());
2834  if (bcd->isLinkableInProject()/* && !Config_getBool(PDF_HYPERLINKS)*/ )
2835  {
2836  writePageRef(ol,bcd->getOutputFileBase(),bcd->anchor());
2837  }
2838  }
2839  ol.parseText(reimplFromLine.right(
2840  reimplFromLine.length()-markerPos-2)); // text right from marker
2841 
2842  }
2843  else
2844  {
2845  err("translation error: no marker in trReimplementsFromList()\n");
2846  }
2847  ol.endParagraph();
2848  }
2849  }
2850 }

引用了 MemberDef::anchor(), ClassDef::anchor(), ClassDef::compoundType(), ClassDef::displayName(), OutputList::endParagraph(), err(), QCString::find(), MemberDef::getClassDef(), MemberDef::getOutputFileBase(), ClassDef::getOutputFileBase(), MemberDef::getReference(), ClassDef::getReference(), ClassDef::Interface, MemberDef::isLinkable(), ClassDef::isLinkable(), MemberDef::isLinkableInProject(), ClassDef::isLinkableInProject(), QCString::left(), QCString::length(), OutputList::parseText(), Pure, reimplements(), QCString::right(), OutputList::startParagraph(), theTranslator, Translator::trImplementedFromList(), Translator::trReimplementedFromList(), MemberDef::virtualness(), OutputList::writeObjectLink() , 以及 writePageRef().

被这些函数引用 writeDocumentation().

◆ _writeTagData()

void MemberDefImpl::_writeTagData ( const  DefType) const
private

◆ _writeTemplatePrefix()

void MemberDefImpl::_writeTemplatePrefix ( OutputList ol,
const Definition def,
const ArgumentList al,
bool  writeReqClause = true 
) const
private

在文件 memberdef.cpp2023 行定义.

2025 {
2026  ol.docify("template<");
2027  for (auto it = al.begin(); it!=al.end();)
2028  {
2029  Argument a = *it;
2030  linkifyText(TextGeneratorOLImpl(ol), // out
2031  def, // scope
2032  getFileDef(), // fileScope
2033  this, // self
2034  a.type, // text
2035  FALSE // autoBreak
2036  );
2037  ol.docify(" ");
2038  ol.docify(a.name);
2039  if (a.defval.length()!=0)
2040  {
2041  ol.docify(" = ");
2042  ol.docify(a.defval);
2043  }
2044  ++it;
2045  if (it!=al.end()) ol.docify(", ");
2046  }
2047  ol.docify("> ");
2048  if (writeReqClause && !m_impl->requiresClause.isEmpty())
2049  {
2050  ol.lineBreak();
2051  ol.docify("requires ");
2052  linkifyText(TextGeneratorOLImpl(ol), // out
2053  def, // scope
2054  getFileDef(), // fileScope
2055  this, // self
2056  m_impl->requiresClause, // text
2057  FALSE // autoBreak
2058  );
2059  }
2060 }

引用了 ArgumentList::begin(), Argument::defval, OutputList::docify(), ArgumentList::end(), FALSE, getFileDef(), QCString::isEmpty(), QCString::length(), OutputList::lineBreak(), linkifyText(), m_impl, Argument::name, MemberDefImpl::IMPL::requiresClause , 以及 Argument::type.

被这些函数引用 writeDeclaration() , 以及 writeDocumentation().

◆ _writeTypeConstraints()

void MemberDefImpl::_writeTypeConstraints ( OutputList ol) const
private

在文件 memberdef.cpp2994 行定义.

2995 {
2997  {
2999  }
3000 }

引用了 ArgumentList::hasParameters(), m_impl, MemberDefImpl::IMPL::typeConstraints , 以及 writeTypeConstraints().

被这些函数引用 writeDocumentation().

◆ accessorClass()

ClassDef * MemberDefImpl::accessorClass ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4638 行定义.

4639 {
4640  return m_impl->accessorClass;
4641 }

引用了 MemberDefImpl::IMPL::accessorClass , 以及 m_impl.

被这些函数引用 MemberDefImpl::IMPL::init().

◆ addExample()

bool MemberDefImpl::addExample ( const QCString anchor,
const QCString name,
const QCString file 
)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp1506 行定义.

1507 {
1508  //printf("%s::addExample(%s,%s,%s)\n",qPrint(name()),anchor,nameStr,file);
1509  return m_impl->examples.inSort(Example(anchor,nameStr,file));
1510 }

引用了 anchor(), Example, MemberDefImpl::IMPL::examples, ExampleList::inSort() , 以及 m_impl.

◆ addListReference()

void MemberDefImpl::addListReference ( Definition d)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp4237 行定义.

4238 {
4239  static bool optimizeOutputForC = Config_getBool(OPTIMIZE_OUTPUT_FOR_C);
4240  //static bool hideScopeNames = Config_getBool(HIDE_SCOPE_NAMES);
4241  //static bool optimizeOutputJava = Config_getBool(OPTIMIZE_OUTPUT_JAVA);
4242  //static bool fortranOpt = Config_getBool(OPTIMIZE_FOR_FORTRAN);
4243  SrcLangExt lang = getLanguage();
4244  if (!isLinkableInProject()) return;
4245  QCString memLabel;
4246  if (optimizeOutputForC)
4247  {
4248  memLabel=theTranslator->trGlobal(TRUE,TRUE);
4249  }
4250  else if (lang==SrcLangExt_Fortran)
4251  {
4252  memLabel=theTranslator->trSubprogram(TRUE,TRUE);
4253  }
4254  else
4255  {
4256  memLabel=theTranslator->trMember(TRUE,TRUE);
4257  }
4258  QCString memName = name();
4259  Definition *pd=getOuterScope();
4261  (toClassDef(pd))->displayName() : pd->name();
4263  QCString memArgs;
4264  if (!isRelated()
4265  /* && commented out as a result of bug 597016
4266  (
4267  (!hideScopeNames && // there is a scope
4268  pd && pd!=Doxygen::globalScope) // and we can show it
4269  ||
4270  (pd=getClassDef()) // it's a class so we
4271  // show the scope anyway
4272  )
4273  */
4274  )
4275  {
4276  if (isObjCMethod())
4277  {
4278  memName = "[" + pd->name() + " " + name() + "]";
4279  }
4280  else
4281  {
4282  if (pd!=Doxygen::globalScope) memName.prepend(pdName+sep);
4283  memArgs = argsString();
4284  }
4285  }
4286  const RefItemVector &xrefItems = xrefListItems();
4287  addRefItem(xrefItems,
4288  qualifiedName()+argsString(), // argsString is needed for overloaded functions (see bug 609624)
4289  memLabel,
4290  getOutputFileBase()+"#"+anchor(),memName,memArgs,pd);
4291 }

引用了 addRefItem(), anchor(), argsString(), Config_getBool, Definition::definitionType(), displayName(), DefinitionMixin< MemberDefMutable >::getLanguage(), getLanguageSpecificSeparator(), DefinitionMixin< MemberDefMutable >::getOuterScope(), getOutputFileBase(), Doxygen::globalScope, isLinkableInProject(), isObjCMethod(), isRelated(), Definition::name(), DefinitionMixin< MemberDefMutable >::name(), QCString::prepend(), qualifiedName(), SrcLangExt_Fortran, theTranslator, toClassDef(), Translator::trGlobal(), Translator::trMember(), Translator::trSubprogram(), TRUE, Definition::TypeClass , 以及 DefinitionMixin< MemberDefMutable >::xrefListItems().

◆ anchor()

QCString MemberDefImpl::anchor ( ) const
virtual

Returns the anchor within a page where this item can be found

实现了 MemberDef.

在文件 memberdef.cpp1615 行定义.

1616 {
1617  QCString result=m_impl->anc;
1618  if (m_impl->groupAlias) return m_impl->groupAlias->anchor();
1620  if (m_impl->enumScope && m_impl->enumScope!=this) // avoid recursion for C#'s public enum E { E, F }
1621  {
1622  result.prepend(m_impl->enumScope->anchor());
1623  }
1624  if (getGroupDef())
1625  {
1626  if (m_impl->groupMember)
1627  {
1628  result=m_impl->groupMember->anchor();
1629  }
1630  else if (getReference().isEmpty())
1631  {
1632  result.prepend("g");
1633  }
1634  }
1635  return result;
1636 }

引用了 MemberDefImpl::IMPL::anc, MemberDef::anchor(), MemberDefImpl::IMPL::enumScope, getGroupDef(), getReference(), MemberDefImpl::IMPL::groupAlias, MemberDefImpl::IMPL::groupMember, m_impl, QCString::prepend() , 以及 MemberDefImpl::IMPL::templateMaster.

被这些函数引用 addExample(), addListReference(), getOutputFileBase(), writeDeclaration(), writeDocumentation(), writeLink(), writeMemberDocSimple() , 以及 writeTagFile().

◆ anonymousDeclShown()

bool MemberDefImpl::anonymousDeclShown ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5353 行定义.

5354 {
5355  return m_impl->annUsed;
5356 }

引用了 MemberDefImpl::IMPL::annUsed , 以及 m_impl.

◆ argsString()

QCString MemberDefImpl::argsString ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4778 行定义.

4779 {
4780  return m_impl->args;
4781 }

引用了 MemberDefImpl::IMPL::args , 以及 m_impl.

被这些函数引用 addListReference(), isFunctionPtr(), warnIfUndocumented(), writeDeclaration(), writeDocumentation(), writeMemberDocSimple() , 以及 writeTagFile().

◆ argumentList() [1/2]

virtual ArgumentList& MemberDefImpl::argumentList ( )
virtual

◆ argumentList() [2/2]

ArgumentList & MemberDefImpl::argumentList ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5265 行定义.

5266 {
5267  return m_impl->defArgList;
5268 }

引用了 MemberDefImpl::IMPL::defArgList , 以及 m_impl.

被这些函数引用 detectUndocumentedParams().

◆ bitfieldString()

QCString MemberDefImpl::bitfieldString ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4788 行定义.

4789 {
4790  return m_impl->bitfields;
4791 }

引用了 MemberDefImpl::IMPL::bitfields , 以及 m_impl.

◆ briefDescription()

QCString MemberDefImpl::briefDescription ( bool  abbreviate = FALSE) const
virtual

Returns the brief description of this definition. This can include commands.

重载 DefinitionMixin< MemberDefMutable > .

在文件 memberdef.cpp5952 行定义.

5953 {
5954  if (m_impl->templateMaster)
5955  {
5956  return m_impl->templateMaster->briefDescription(abbr);
5957  }
5958  else
5959  {
5960  return DefinitionMixin::briefDescription(abbr);
5961  }
5962 }

引用了 DefinitionMixin< Base >::briefDescription(), MemberDef::briefDescription(), m_impl , 以及 MemberDefImpl::IMPL::templateMaster.

被这些函数引用 findSectionsInDocumentation(), hasDetailedDescription(), writeDeclaration(), writeDocumentation() , 以及 writeMemberDocSimple().

◆ cacheTypedefVal()

void MemberDefImpl::cacheTypedefVal ( const ClassDef val,
const QCString templSpec,
const QCString resolvedType 
)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5710 行定义.

5711 {
5714  m_impl->cachedTypedefTemplSpec=templSpec;
5715  m_impl->cachedResolvedType=resolvedType;
5716  //printf("MemberDefImpl::cacheTypedefVal=%s m_impl=%p\n",qPrint(m_impl->cachedResolvedType),m_impl);
5717 }

引用了 MemberDefImpl::IMPL::cachedResolvedType, MemberDefImpl::IMPL::cachedTypedefTemplSpec, MemberDefImpl::IMPL::cachedTypedefValue, MemberDefImpl::IMPL::isTypedefValCached, m_impl , 以及 TRUE.

◆ category()

ClassDef * MemberDefImpl::category ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5670 行定义.

5671 {
5672  return m_impl->category;
5673 }

引用了 MemberDefImpl::IMPL::category , 以及 m_impl.

◆ categoryRelation()

const MemberDef * MemberDefImpl::categoryRelation ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5680 行定义.

5681 {
5682  return m_impl->categoryRelation;
5683 }

引用了 MemberDefImpl::IMPL::categoryRelation , 以及 m_impl.

◆ codeSymbolType()

CodeSymbolType MemberDefImpl::codeSymbolType ( ) const
virtual

Used for syntax highlighting symbol class

实现了 Definition.

在文件 memberdef.cpp6020 行定义.

引用了 DCOP, Default, Define, Dictionary, Enumeration, EnumValue, Event, Friend, Function, Interface, memberType(), MemberType_DCOP, MemberType_Define, MemberType_Dictionary, MemberType_Enumeration, MemberType_EnumValue, MemberType_Event, MemberType_Friend, MemberType_Function, MemberType_Interface, MemberType_Property, MemberType_Sequence, MemberType_Service, MemberType_Signal, MemberType_Slot, MemberType_Typedef, MemberType_Variable, Property, Sequence, Service, Signal, Slot, Typedef , 以及 Variable.

◆ copyArgumentNames()

void MemberDefImpl::copyArgumentNames ( const MemberDef bmd)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5719 行定义.

5720 {
5721  {
5722  const ArgumentList &srcAl = bmd->argumentList();
5723  ArgumentList &dstAl = m_impl->defArgList;
5724  auto srcIt = srcAl.begin();
5725  auto dstIt = dstAl.begin();
5726  while ( srcIt!=srcAl.end() && dstIt!=dstAl.end())
5727  {
5728  Argument &argDst = *dstIt;
5729  const Argument &argSrc = *srcIt;
5730  argDst.name = argSrc.name;
5731  argDst.docs = argSrc.docs;
5732  ++srcIt;
5733  ++dstIt;
5734  }
5735  }
5736 
5737  {
5738  const ArgumentList &srcAl = bmd->declArgumentList();
5739  ArgumentList &dstAl = m_impl->declArgList;
5740  auto srcIt = srcAl.begin();
5741  auto dstIt = dstAl.begin();
5742 
5743  while ( srcIt!=srcAl.end() && dstIt!=dstAl.end())
5744  {
5745  Argument &argDst = *dstIt;
5746  const Argument &argSrc = *srcIt;
5747  argDst.name = argSrc.name;
5748  argDst.docs = argSrc.docs;
5749  ++srcIt;
5750  ++dstIt;
5751  }
5752  }
5753 }

引用了 MemberDef::argumentList(), ArgumentList::begin(), MemberDefImpl::IMPL::declArgList, MemberDef::declArgumentList(), MemberDefImpl::IMPL::defArgList, Argument::docs, ArgumentList::end(), m_impl , 以及 Argument::name.

◆ createTemplateInstanceMember()

MemberDefMutable * MemberDefImpl::createTemplateInstanceMember ( const ArgumentList formalArgs,
const std::unique_ptr< ArgumentList > &  actualArgs 
) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4165 行定义.

4167 {
4168  //printf(" Member %s %s %s\n",typeString(),qPrint(name()),argsString());
4169  std::unique_ptr<ArgumentList> actualArgList = std::make_unique<ArgumentList>(m_impl->defArgList);
4170  if (!m_impl->defArgList.empty())
4171  {
4172  // replace formal arguments with actuals
4173  for (Argument &arg : *actualArgList)
4174  {
4175  arg.type = substituteTemplateArgumentsInString(arg.type,formalArgs,actualArgs);
4176  }
4177  actualArgList->setTrailingReturnType(
4178  substituteTemplateArgumentsInString(actualArgList->trailingReturnType(),formalArgs,actualArgs));
4179  }
4180 
4181  QCString methodName=name();
4182  if (methodName.left(9)=="operator ") // conversion operator
4183  {
4184  methodName=substituteTemplateArgumentsInString(methodName,formalArgs,actualArgs);
4185  }
4186 
4189  substituteTemplateArgumentsInString(m_impl->type,formalArgs,actualArgs),
4190  methodName,
4191  substituteTemplateArgumentsInString(m_impl->args,formalArgs,actualArgs),
4194  ArgumentList(), ArgumentList(), ""
4195  );
4196  imd->moveArgumentList(std::move(actualArgList));
4197  imd->setDefinition(substituteTemplateArgumentsInString(m_impl->def,formalArgs,actualArgs));
4198  imd->setBodyDef(getBodyDef());
4200  //imd->setBodyMember(this);
4201 
4202  // TODO: init other member variables (if needed).
4203  // TODO: reimplemented info
4204  return imd;
4205 }

引用了 MemberDefImpl::IMPL::args, createMemberDef(), MemberDefImpl::IMPL::def, MemberDefImpl::IMPL::defArgList, ArgumentList::empty(), MemberDefImpl::IMPL::exception, DefinitionMixin< MemberDefMutable >::getBodyDef(), DefinitionMixin< MemberDefMutable >::getDefColumn(), DefinitionMixin< MemberDefMutable >::getDefFileName(), DefinitionMixin< MemberDefMutable >::getDefLine(), DefinitionMixin< MemberDefMutable >::getEndBodyLine(), DefinitionMixin< MemberDefMutable >::getStartBodyLine(), QCString::left(), m_impl, MemberDefMutable::moveArgumentList(), MemberDefImpl::IMPL::mtype, DefinitionMixin< MemberDefMutable >::name(), MemberDefImpl::IMPL::prot, MemberDefImpl::IMPL::related, DefinitionMutable::setBodyDef(), DefinitionMutable::setBodySegment(), MemberDefMutable::setDefinition(), MemberDefImpl::IMPL::stat, substituteTemplateArgumentsInString(), MemberDefImpl::IMPL::type , 以及 MemberDefImpl::IMPL::virt.

◆ declaration()

QCString MemberDefImpl::declaration ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4758 行定义.

4759 {
4760  return m_impl->decl;
4761 }

引用了 MemberDefImpl::IMPL::decl , 以及 m_impl.

◆ declArgumentList()

const ArgumentList & MemberDefImpl::declArgumentList ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5275 行定义.

5276 {
5277  return m_impl->declArgList;
5278 }

引用了 MemberDefImpl::IMPL::declArgList , 以及 m_impl.

被这些函数引用 detectUndocumentedParams().

◆ deepCopy()

MemberDef * MemberDefImpl::deepCopy ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp1409 行定义.

1410 {
1411  //MemberDef *result = new MemberDef(getDefFileName(),getDefLine(),name());
1412  MemberDefImpl *result = new MemberDefImpl(*this);
1413  // first copy everything by reference
1414  *result->m_impl = *m_impl;
1415  result->m_impl->defArgList = m_impl->defArgList;
1416  result->m_impl->tArgList = m_impl->tArgList;
1419  result->m_impl->declArgList = m_impl->declArgList;
1420  return result;
1421 }

引用了 MemberDefImpl::IMPL::declArgList, MemberDefImpl::IMPL::defArgList, MemberDefImpl::IMPL::defTmpArgLists, m_impl, MemberDefImpl(), setDefinitionTemplateParameterLists(), MemberDefImpl::IMPL::tArgList , 以及 MemberDefImpl::IMPL::typeConstraints.

◆ definition()

QCString MemberDefImpl::definition ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4763 行定义.

4764 {
4765  return m_impl->def;
4766 }

引用了 MemberDefImpl::IMPL::def , 以及 m_impl.

被这些函数引用 displayDefinition(), setAnchor() , 以及 writeDocumentation().

◆ definitionTemplateParameterLists()

const ArgumentLists & MemberDefImpl::definitionTemplateParameterLists ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5333 行定义.

5334 {
5335  return m_impl->defTmpArgLists;
5336 }

引用了 MemberDefImpl::IMPL::defTmpArgLists , 以及 m_impl.

◆ definitionType()

virtual DefType MemberDefImpl::definitionType ( ) const
inlinevirtual

Use this for dynamic inspection of the type of the derived class

实现了 MemberDef.

在文件 memberdef.cpp74 行定义.

◆ detectUndocumentedParams()

void MemberDefImpl::detectUndocumentedParams ( bool  hasParamCommand,
bool  hasReturnCommand 
) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp3920 行定义.

3921 {
3922  if (!Config_getBool(WARN_NO_PARAMDOC)) return;
3923  QCString returnType = typeString();
3924  bool isPython = getLanguage()==SrcLangExt_Python;
3925  bool isFortran = getLanguage()==SrcLangExt_Fortran;
3926  bool isFortranSubroutine = isFortran && returnType.find("subroutine")!=-1;
3927 
3928  bool isVoidReturn = (returnType=="void") || (returnType.right(5)==" void");
3929  if (!isVoidReturn && returnType == "auto")
3930  {
3931  const ArgumentList &defArgList=isDocsForDefinition() ? argumentList() : declArgumentList();
3932  if (!defArgList.trailingReturnType().isEmpty())
3933  {
3934  QCString strippedTrailingReturn = stripTrailingReturn(defArgList.trailingReturnType());
3935  isVoidReturn = (strippedTrailingReturn=="void") || (strippedTrailingReturn.right(5)==" void");
3936  }
3937  }
3938 
3939  if (!m_impl->hasDocumentedParams && hasParamCommand)
3940  {
3941  //printf("%s:hasDocumentedParams=TRUE;\n",qPrint(name()));
3943  }
3944  else if (!m_impl->hasDocumentedParams)
3945  {
3946  const ArgumentList &al = argumentList();
3947  const ArgumentList &declAl = declArgumentList();
3948  bool allDoc=TRUE; // no parameter => all parameters are documented
3949  if ( // member has parameters
3950  al.hasParameters() // with at least one parameter (that is not void)
3951  )
3952  {
3953  // see if all parameters have documentation
3954  for (auto it = al.begin(); it!=al.end() && allDoc; ++it)
3955  {
3956  Argument a = *it;
3957  if (!a.name.isEmpty() && a.type!="void" &&
3958  !(isPython && (a.name=="self" || a.name=="cls"))
3959  )
3960  {
3961  allDoc = !a.docs.isEmpty();
3962  }
3963  //printf("a->type=%s a->name=%s doc=%s\n",
3964  // qPrint(a->type),qPrint(a->name),qPrint(a->docs));
3965  }
3966  if (!allDoc && declAl.empty()) // try declaration arguments as well
3967  {
3968  allDoc=TRUE;
3969  for (auto it = al.begin(); it!=al.end() && allDoc; ++it)
3970  {
3971  Argument a = *it;
3972  if (!a.name.isEmpty() && a.type!="void" &&
3973  !(isPython && (a.name=="self" || a.name=="cls"))
3974  )
3975  {
3976  allDoc = !a.docs.isEmpty();
3977  }
3978  //printf("a->name=%s doc=%s\n",qPrint(a->name),qPrint(a->docs));
3979  }
3980  }
3981  }
3982  if (allDoc)
3983  {
3984  //printf("%s:hasDocumentedParams=TRUE;\n",qPrint(name()));
3986  }
3987  }
3988 
3989  //printf("Member %s hasDocumentedReturnType=%d hasReturnCommand=%d\n",
3990  // qPrint(name()),m_impl->hasDocumentedReturnType,hasReturnCommand);
3991  if (!m_impl->hasDocumentedReturnType && // docs not yet found
3992  hasReturnCommand)
3993  {
3995  }
3996  else if ( // see if return type is documented in a function w/o return type
3997  hasReturnCommand &&
3998  (
3999  isVoidReturn || // void return type
4000  isFortranSubroutine || // fortran subroutine
4001  isConstructor() || // a constructor
4002  isDestructor() // or destructor
4003  )
4004  )
4005  {
4006  warn_doc_error(getDefFileName(),getDefLine(),"documented empty return type of %s",
4007  qPrint(qualifiedName()));
4008  }
4009  else if ( // see if return needs to documented
4011  isVoidReturn || // void return type
4012  isFortranSubroutine || // fortran subroutine
4013  isConstructor() || // a constructor
4014  isDestructor() // or destructor
4015  )
4016  {
4018  }
4019 }

引用了 argumentList(), ArgumentList::begin(), Config_getBool, declArgumentList(), Argument::docs, ArgumentList::empty(), ArgumentList::end(), QCString::find(), DefinitionMixin< MemberDefMutable >::getDefFileName(), DefinitionMixin< MemberDefMutable >::getDefLine(), DefinitionMixin< MemberDefMutable >::getLanguage(), MemberDefImpl::IMPL::hasDocumentedParams, MemberDefImpl::IMPL::hasDocumentedReturnType, ArgumentList::hasParameters(), isConstructor(), isDestructor(), isDocsForDefinition(), QCString::isEmpty(), m_impl, Argument::name, qPrint(), qualifiedName(), QCString::right(), SrcLangExt_Fortran, SrcLangExt_Python, stripTrailingReturn(), ArgumentList::trailingReturnType(), TRUE, Argument::type, typeString() , 以及 warn_doc_error().

◆ displayDefinition()

QCString MemberDefImpl::displayDefinition ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp3073 行定义.

3074 {
3075  QCString ldef = definition();
3076  QCString title = name();
3077  if (isEnumerate())
3078  {
3079  if (isAnonymous())
3080  {
3081  ldef = title = "anonymous enum";
3082  if (!m_impl->enumBaseType.isEmpty())
3083  {
3084  ldef+=" : "+m_impl->enumBaseType;
3085  }
3086  }
3087  else
3088  {
3089  ldef.prepend("enum ");
3090  if (isSliceLocal())
3091  {
3092  ldef.prepend("local ");
3093  }
3094  }
3095  }
3096  else if (isEnumValue())
3097  {
3098  if (isAnonymous())
3099  {
3100  ldef=ldef.mid(2);
3101  }
3102  }
3103 
3104  std::string sdef = ldef.str();
3105  reg::Match match;
3106  if (reg::search(sdef,match,reAnonymous))
3107  {
3108  ldef = match.prefix().str() + " { ... } " + match.suffix().str();
3109  }
3110 
3111  const ClassDef *cd=getClassDef();
3112  if (cd && cd->isObjectiveC())
3113  {
3114  // strip scope name
3115  int ep = ldef.find("::");
3116  if (ep!=-1)
3117  {
3118  int sp=ldef.findRev(' ',ep);
3119  if (sp!=-1)
3120  {
3121  ldef=ldef.left(sp+1)+ldef.mid(ep+2);
3122  }
3123  }
3124  // strip keywords
3125  int dp = ldef.find(':');
3126  if (dp!=-1)
3127  {
3128  ldef=ldef.left(dp+1);
3129  }
3130  int l=ldef.length();
3131  //printf("start >%s<\n",qPrint(ldef));
3132  int i=l-1;
3133  while (i>=0 && (isId(ldef.at(i)) || ldef.at(i)==':')) i--;
3134  while (i>=0 && isspace((uchar)ldef.at(i))) i--;
3135  if (i>0)
3136  {
3137  // insert braches around the type
3138  QCString tmp("("+ldef.left(i+1)+")"+ldef.mid(i+1));
3139  ldef=tmp;
3140  }
3141  //printf("end >%s< i=%d\n",qPrint(ldef),i);
3142  if (isStatic()) ldef.prepend("+ "); else ldef.prepend("- ");
3143  }
3144  SrcLangExt lang = getLanguage();
3146  return substitute(ldef,"::",sep);
3147 }

引用了 QCString::at(), definition(), MemberDefImpl::IMPL::enumBaseType, QCString::find(), QCString::findRev(), getClassDef(), DefinitionMixin< MemberDefMutable >::getLanguage(), getLanguageSpecificSeparator(), DefinitionMixin< MemberDefMutable >::isAnonymous(), QCString::isEmpty(), isEnumerate(), isEnumValue(), isId(), ClassDef::isObjectiveC(), isSliceLocal(), reg::isspace(), isStatic(), QCString::left(), QCString::length(), m_impl, reg::match(), QCString::mid(), DefinitionMixin< MemberDefMutable >::name(), QCString::prepend(), reAnonymous, reg::search(), QCString::str(), substitute() , 以及 TRUE.

◆ displayName()

QCString MemberDefImpl::displayName ( bool  includeScope = TRUE) const
virtual

Returns the name of the definition as it appears in the output

实现了 MemberDef.

在文件 memberdef.cpp5781 行定义.

5782 {
5783  return DefinitionMixin::name();
5784 }

引用了 DefinitionMixin< Base >::name().

被这些函数引用 addListReference().

◆ documentation()

QCString MemberDefImpl::documentation ( ) const
virtual

Returns the detailed description of this definition

实现了 MemberDef.

在文件 memberdef.cpp5964 行定义.

5965 {
5966  if (m_impl->templateMaster)
5967  {
5968  return m_impl->templateMaster->documentation();
5969  }
5970  else
5971  {
5973  }
5974 }

引用了 DefinitionMixin< Base >::documentation(), MemberDef::documentation(), m_impl , 以及 MemberDefImpl::IMPL::templateMaster.

被这些函数引用 findSectionsInDocumentation(), hasDetailedDescription(), isBriefSectionVisible(), writeDocumentation() , 以及 writeMemberDocSimple().

◆ enableCallerGraph()

void MemberDefImpl::enableCallerGraph ( bool  e)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp4655 行定义.

4656 {
4659 }

引用了 MemberDefImpl::IMPL::hasCallerGraph, m_impl, Doxygen::parseSourcesNeeded , 以及 TRUE.

◆ enableCallGraph()

void MemberDefImpl::enableCallGraph ( bool  e)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp4649 行定义.

4650 {
4651  m_impl->hasCallGraph=e;
4653 }

引用了 MemberDefImpl::IMPL::hasCallGraph, m_impl, Doxygen::parseSourcesNeeded , 以及 TRUE.

◆ enableReferencedByRelation()

void MemberDefImpl::enableReferencedByRelation ( bool  e)
virtual

◆ enableReferencesRelation()

void MemberDefImpl::enableReferencesRelation ( bool  e)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp4667 行定义.

4668 {
4671 }

引用了 MemberDefImpl::IMPL::hasReferencesRelation, m_impl, Doxygen::parseSourcesNeeded , 以及 TRUE.

◆ enumBaseType()

QCString MemberDefImpl::enumBaseType ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5695 行定义.

5696 {
5697  return m_impl->enumBaseType;
5698 }

引用了 MemberDefImpl::IMPL::enumBaseType , 以及 m_impl.

◆ enumFieldList()

const MemberVector & MemberDefImpl::enumFieldList ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5250 行定义.

5251 {
5252  return m_impl->enumFields;
5253 }

引用了 MemberDefImpl::IMPL::enumFields , 以及 m_impl.

被这些函数引用 _writeEnumValues().

◆ excpString()

QCString MemberDefImpl::excpString ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4783 行定义.

4784 {
4785  return m_impl->exception;
4786 }

引用了 MemberDefImpl::IMPL::exception , 以及 m_impl.

被这些函数引用 writeDeclaration() , 以及 writeDocumentation().

◆ extraTypeChars()

QCString MemberDefImpl::extraTypeChars ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4768 行定义.

4769 {
4770  return m_impl->extraTypeChars;
4771 }

引用了 MemberDefImpl::IMPL::extraTypeChars , 以及 m_impl.

被这些函数引用 MemberDefImpl::IMPL::init().

◆ fieldType()

QCString MemberDefImpl::fieldType ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp3713 行定义.

3714 {
3715  QCString type = m_impl->accessorType;
3716  if (type.isEmpty())
3717  {
3718  type = m_impl->type;
3719  }
3720 
3721  if (isTypedef() && getLanguage() != SrcLangExt_Slice) type.prepend("typedef ");
3722  return simplifyTypeForTable(type);
3723 }

引用了 MemberDefImpl::IMPL::accessorType, DefinitionMixin< MemberDefMutable >::getLanguage(), QCString::isEmpty(), isTypedef(), m_impl, QCString::prepend(), simplifyTypeForTable(), SrcLangExt_Slice , 以及 MemberDefImpl::IMPL::type.

被这些函数引用 writeMemberDocSimple().

◆ findSectionsInDocumentation()

void MemberDefImpl::findSectionsInDocumentation ( )
virtual

◆ fromAnonymousMember()

MemberDef * MemberDefImpl::fromAnonymousMember ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5634 行定义.

5635 {
5636  return m_impl->annMemb;
5637 }

引用了 MemberDefImpl::IMPL::annMemb , 以及 m_impl.

◆ fromAnonymousScope()

bool MemberDefImpl::fromAnonymousScope ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5348 行定义.

5349 {
5350  return m_impl->annScope;
5351 }

引用了 MemberDefImpl::IMPL::annScope , 以及 m_impl.

◆ getAnonymousEnumType()

const MemberDef * MemberDefImpl::getAnonymousEnumType ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5220 行定义.

5221 {
5222  return m_impl->annEnumType;
5223 }

引用了 MemberDefImpl::IMPL::annEnumType , 以及 m_impl.

被这些函数引用 writeDeclaration().

◆ getCachedResolvedTypedef()

QCString MemberDefImpl::getCachedResolvedTypedef ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5429 行定义.

5430 {
5431  //printf("MemberDefImpl::getCachedResolvedTypedef()=%s m_impl=%p\n",qPrint(m_impl->cachedResolvedType),m_impl);
5432  return m_impl->cachedResolvedType;
5433 }

引用了 MemberDefImpl::IMPL::cachedResolvedType , 以及 m_impl.

◆ getCachedTypedefTemplSpec()

QCString MemberDefImpl::getCachedTypedefTemplSpec ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5424 行定义.

5425 {
5427 }

引用了 MemberDefImpl::IMPL::cachedTypedefTemplSpec , 以及 m_impl.

◆ getCachedTypedefVal()

const ClassDef * MemberDefImpl::getCachedTypedefVal ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5419 行定义.

5420 {
5421  return m_impl->cachedTypedefValue;
5422 }

引用了 MemberDefImpl::IMPL::cachedTypedefValue , 以及 m_impl.

◆ getClassDef()

◆ getClassDefOfAnonymousType()

ClassDef * MemberDefImpl::getClassDefOfAnonymousType ( ) const
virtual

If this member has an anonymous class/struct/union as its type, then this method will return the ClassDef that describes this return type.

实现了 MemberDef.

在文件 memberdef.cpp1827 行定义.

1828 {
1829  std::lock_guard<std::mutex> lock(g_cachedAnonymousTypeMutex);
1830  //printf("%s:getClassDefOfAnonymousType() cache=%s\n",qPrint(name()),
1831  // m_impl->cachedAnonymousType?qPrint(m_impl->cachedAnonymousType->name()):"<empty>");
1833 
1834  QCString cname;
1835  if (getClassDef()!=0)
1836  {
1837  cname=getClassDef()->name();
1838  }
1839  else if (getNamespaceDef()!=0)
1840  {
1841  cname=getNamespaceDef()->name();
1842  }
1843  QCString ltype(m_impl->type);
1844  // strip 'static' keyword from ltype
1845  //if (ltype.left(7)=="static ") ltype=ltype.right(ltype.length()-7);
1846  // strip 'friend' keyword from ltype
1847  ltype.stripPrefix("friend ");
1848 
1849  // search for the last anonymous scope in the member type
1850  ClassDef *annoClassDef=0;
1851 
1852  // match expression if it contains at least one @1 marker, e.g.
1853  // 'struct A::@1::@2::B' matches 'A::@1::@2::B' but 'struct A::B' does not match.
1854  std::string stype = ltype.str();
1855  static const reg::Ex r(R"([\w@:]*@\d+[\w@:]*)");
1856  reg::Match match;
1857  if (reg::search(stype,match,r)) // found anonymous scope in type
1858  {
1859  QCString annName = match.str();
1860 
1861  // if inside a class or namespace try to prepend the scope name
1862  if (!cname.isEmpty() && annName.left(cname.length()+2)!=cname+"::")
1863  {
1864  QCString ts=stripAnonymousNamespaceScope(cname+"::"+annName);
1865  annoClassDef=getClass(ts);
1866  }
1867  // if not found yet, try without scope name
1868  if (annoClassDef==0)
1869  {
1871  annoClassDef=getClass(ts);
1872  }
1873  }
1874  m_impl->cachedAnonymousType = annoClassDef;
1875  return annoClassDef;
1876 }

引用了 MemberDefImpl::IMPL::cachedAnonymousType, g_cachedAnonymousTypeMutex, getClass(), getClassDef(), getNamespaceDef(), QCString::isEmpty(), QCString::left(), QCString::length(), m_impl, reg::match(), Definition::name(), reg::search(), QCString::str(), stripAnonymousNamespaceScope(), QCString::stripPrefix() , 以及 MemberDefImpl::IMPL::type.

被这些函数引用 writeDeclaration().

◆ getDeclColumn()

int MemberDefImpl::getDeclColumn ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5465 行定义.

5466 {
5467  return m_impl->declColumn;
5468 }

引用了 MemberDefImpl::IMPL::declColumn , 以及 m_impl.

◆ getDeclFileName()

QCString MemberDefImpl::getDeclFileName ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5455 行定义.

5456 {
5457  return m_impl->declFileName;
5458 }

引用了 MemberDefImpl::IMPL::declFileName , 以及 m_impl.

◆ getDeclLine()

int MemberDefImpl::getDeclLine ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5460 行定义.

5461 {
5462  return m_impl->declLine;
5463 }

引用了 MemberDefImpl::IMPL::declLine , 以及 m_impl.

◆ getDeclType()

QCString MemberDefImpl::getDeclType ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp1983 行定义.

1984 {
1985  SrcLangExt lang = getLanguage();
1986  QCString ltype(m_impl->type);
1987  if (lang==SrcLangExt_Cpp && isEnumerate() && isStrong())
1988  {
1989  if (isEnumStruct())
1990  {
1991  ltype+=" struct";
1992  }
1993  else
1994  {
1995  ltype+=" class";
1996  }
1997  }
1998  if (isTypedef() && getLanguage() != SrcLangExt_Slice)
1999  {
2000  ltype.prepend("typedef ");
2001  }
2002  if (isTypeAlias())
2003  {
2004  ltype="using";
2005  }
2006  // strip 'friend' keyword from ltype
2007  ltype.stripPrefix("friend ");
2008  if (ltype=="@") // rename type from enum values
2009  {
2010  ltype="";
2011  }
2012  else
2013  {
2014  if (isObjCMethod())
2015  {
2016  ltype.prepend("(");
2017  ltype.append(")");
2018  }
2019  }
2020  return ltype;
2021 }

引用了 QCString::append(), DefinitionMixin< MemberDefMutable >::getLanguage(), isEnumerate(), isEnumStruct(), isObjCMethod(), isStrong(), isTypeAlias(), isTypedef(), m_impl, QCString::prepend(), SrcLangExt_Cpp, SrcLangExt_Slice, QCString::stripPrefix() , 以及 MemberDefImpl::IMPL::type.

◆ getEnumScope()

const MemberDef * MemberDefImpl::getEnumScope ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5230 行定义.

5231 {
5232  return m_impl->enumScope;
5233 }

引用了 MemberDefImpl::IMPL::enumScope , 以及 m_impl.

被这些函数引用 getOutputFileBase() , 以及 writeLink().

◆ getExamples()

const ExampleList & MemberDefImpl::getExamples ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5255 行定义.

5256 {
5257  return m_impl->examples;
5258 }

引用了 MemberDefImpl::IMPL::examples , 以及 m_impl.

◆ getFileDef()

const FileDef * MemberDefImpl::getFileDef ( ) const
virtual

◆ getGroupAlias()

const MemberDef * MemberDefImpl::getGroupAlias ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5450 行定义.

5451 {
5452  return m_impl->groupAlias;
5453 }

引用了 MemberDefImpl::IMPL::groupAlias , 以及 m_impl.

◆ getGroupDef()

const GroupDef * MemberDefImpl::getGroupDef ( ) const
virtual

◆ getGroupFileName()

QCString MemberDefImpl::getGroupFileName ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4843 行定义.

4844 {
4845  return m_impl->groupFileName;
4846 }

引用了 MemberDefImpl::IMPL::groupFileName , 以及 m_impl.

◆ getGroupHasDocs()

bool MemberDefImpl::getGroupHasDocs ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4853 行定义.

4854 {
4855  return m_impl->groupHasDocs;
4856 }

引用了 MemberDefImpl::IMPL::groupHasDocs , 以及 m_impl.

◆ getGroupPri()

Grouping::GroupPri_t MemberDefImpl::getGroupPri ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4838 行定义.

4839 {
4840  return m_impl->grouppri;
4841 }

引用了 MemberDefImpl::IMPL::grouppri , 以及 m_impl.

◆ getGroupStartLine()

int MemberDefImpl::getGroupStartLine ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4848 行定义.

4849 {
4850  return m_impl->groupStartLine;
4851 }

引用了 MemberDefImpl::IMPL::groupStartLine , 以及 m_impl.

◆ getLabels()

StringVector MemberDefImpl::getLabels ( const Definition container) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp2613 行定义.

2614 {
2615  StringVector sl;
2616  static bool inlineInfo = Config_getBool(INLINE_INFO);
2617 
2618  Specifier lvirt=virtualness();
2619  if ((!isObjCMethod() || isOptional() || isRequired()) &&
2620  (protection()!=Public || lvirt!=Normal ||
2621  isFriend() || isRelated() ||
2622  (isInline() && inlineInfo) ||
2623  isSignal() || isSlot() ||
2624  isStatic() || isExternal() ||
2625  (getClassDef() && getClassDef()!=container && container->definitionType()==TypeClass) ||
2626  (m_impl->memSpec & ~Entry::Inline)!=0
2627  )
2628  )
2629  {
2630  // write the member specifier list
2631  //ol.writeLatexSpacing();
2632  //ol.startTypewriter();
2633  //ol.docify(" [");
2634  SrcLangExt lang = getLanguage();
2635  bool optVhdl = lang==SrcLangExt_VHDL;
2636  static bool extractPrivate = Config_getBool(EXTRACT_PRIVATE);
2637  if (optVhdl)
2638  {
2639  sl.push_back(theTranslator->trVhdlType(getMemberSpecifiers(),TRUE).str());
2640  }
2641  else
2642  {
2643  if (isFriend()) sl.push_back("friend");
2644  else if (isRelated()) sl.push_back("related");
2645  else
2646  {
2647  if (isExternal()) sl.push_back("extern");
2648  if (inlineInfo && isInline()) sl.push_back("inline");
2649  if (isExplicit()) sl.push_back("explicit");
2650  if (isMutable()) sl.push_back("mutable");
2651  if (isStatic()) sl.push_back("static");
2652  if (isGettable()) sl.push_back("get");
2653  if (isProtectedGettable()) sl.push_back("protected get");
2654  if (isSettable()) sl.push_back("set");
2655  if (isProtectedSettable()) sl.push_back("protected set");
2656  if (extractPrivate)
2657  {
2658  if (isPrivateGettable()) sl.push_back("private get");
2659  if (isPrivateSettable()) sl.push_back("private set");
2660  }
2661  if (isConstExpr()) sl.push_back("constexpr");
2662  if (isAddable()) sl.push_back("add");
2663  if (!isUNOProperty() && isRemovable()) sl.push_back("remove");
2664  if (isRaisable()) sl.push_back("raise");
2665  if (isReadable()) sl.push_back("read");
2666  if (isWritable()) sl.push_back("write");
2667  if (isFinal()) sl.push_back("final");
2668  if (isAbstract()) sl.push_back("abstract");
2669  if (isOverride()) sl.push_back("override");
2670  if (isInitonly()) sl.push_back("initonly");
2671  if (isSealed()) sl.push_back("sealed");
2672  if (isNew()) sl.push_back("new");
2673  if (isOptional()) sl.push_back("optional");
2674  if (isRequired()) sl.push_back("required");
2675 
2676  if (isNonAtomic()) sl.push_back("nonatomic");
2677  else if (isObjCProperty()) sl.push_back("atomic");
2678 
2679  // mutual exclusive Objective 2.0 property attributes
2680  if (isAssign()) sl.push_back("assign");
2681  else if (isCopy()) sl.push_back("copy");
2682  else if (isRetain()) sl.push_back("retain");
2683  else if (isWeak()) sl.push_back("weak");
2684  else if (lang!=SrcLangExt_CSharp && isStrong()) sl.push_back("strong");
2685  else if (isUnretained()) sl.push_back("unsafe_unretained");
2686 
2687  if (!isObjCMethod())
2688  {
2689  if (protection()==Protected) sl.push_back("protected");
2690  else if (protection()==Private) sl.push_back("private");
2691  else if (protection()==Package) sl.push_back("package");
2692 
2693  if (lvirt==Virtual) sl.push_back("virtual");
2694  else if (lvirt==Pure) sl.push_back("pure virtual");
2695  if (isSignal()) sl.push_back("signal");
2696  if (isSlot()) sl.push_back("slot");
2697  if (isDefault()) sl.push_back("default");
2698  if (isDelete()) sl.push_back("delete");
2699  if (isNoExcept()) sl.push_back("noexcept");
2700  if (isAttribute()) sl.push_back("attribute");
2701  if (isUNOProperty()) sl.push_back("property");
2702  if (isReadonly()) sl.push_back("readonly");
2703  if (isBound()) sl.push_back("bound");
2704  if (isUNOProperty() && isRemovable()) sl.push_back("removable");
2705  if (isConstrained()) sl.push_back("constrained");
2706  if (isTransient()) sl.push_back("transient");
2707  if (isMaybeVoid()) sl.push_back("maybevoid");
2708  if (isMaybeDefault()) sl.push_back("maybedefault");
2709  if (isMaybeAmbiguous()) sl.push_back("maybeambiguous");
2710  if (isPublished()) sl.push_back("published"); // enum
2711  }
2712  if (isObjCProperty() && isImplementation())
2713  {
2714  sl.push_back("implementation");
2715  }
2716  }
2717  if (getClassDef() &&
2718  container->definitionType()==TypeClass &&
2719  getClassDef()!=container &&
2720  !isRelated()
2721  )
2722  {
2723  sl.push_back("inherited");
2724  }
2725  }
2726  }
2727  else if (isObjCMethod() && isImplementation())
2728  {
2729  sl.push_back("implementation");
2730  }
2731  return sl;
2732 }

引用了 Config_getBool, Definition::definitionType(), getClassDef(), DefinitionMixin< MemberDefMutable >::getLanguage(), getMemberSpecifiers(), Entry::Inline, isAbstract(), isAddable(), isAssign(), isAttribute(), isBound(), isConstExpr(), isConstrained(), isCopy(), isDefault(), isDelete(), isExplicit(), isExternal(), isFinal(), isFriend(), isGettable(), isImplementation(), isInitonly(), isInline(), isMaybeAmbiguous(), isMaybeDefault(), isMaybeVoid(), isMutable(), isNew(), isNoExcept(), isNonAtomic(), isObjCMethod(), isObjCProperty(), isOptional(), isOverride(), isPrivateGettable(), isPrivateSettable(), isProtectedGettable(), isProtectedSettable(), isPublished(), isRaisable(), isReadable(), isReadonly(), isRelated(), isRemovable(), isRequired(), isRetain(), isSealed(), isSettable(), isSignal(), isSlot(), isStatic(), isStrong(), isTransient(), isUNOProperty(), isUnretained(), isWeak(), isWritable(), m_impl, MemberDefImpl::IMPL::memSpec, Normal, Package, Private, Protected, protection(), Public, Pure, SrcLangExt_CSharp, SrcLangExt_VHDL, theTranslator, TRUE, Translator::trVhdlType(), Definition::TypeClass, Virtual , 以及 virtualness().

被这些函数引用 writeDocumentation().

◆ getMemberGroup()

MemberGroup * MemberDefImpl::getMemberGroup ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5343 行定义.

5344 {
5345  return m_impl->memberGroup;
5346 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::memberGroup.

◆ getMemberGroupId()

int MemberDefImpl::getMemberGroupId ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5338 行定义.

5339 {
5340  return m_impl->grpId;
5341 }

引用了 MemberDefImpl::IMPL::grpId , 以及 m_impl.

◆ getMemberSpecifiers()

uint64 MemberDefImpl::getMemberSpecifiers ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4803 行定义.

4804 {
4805  return m_impl->memSpec;
4806 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::memSpec.

被这些函数引用 getLabels().

◆ getNamespaceDef()

const NamespaceDef * MemberDefImpl::getNamespaceDef ( ) const
virtual

◆ getOutputFileBase()

QCString MemberDefImpl::getOutputFileBase ( ) const
virtual

Returns the base file name (without extension) of this definition. as it is referenced to/written to disk.

实现了 MemberDef.

在文件 memberdef.cpp1517 行定义.

1518 {
1519  static bool separateMemberPages = Config_getBool(SEPARATE_MEMBER_PAGES);
1520  static bool inlineSimpleClasses = Config_getBool(INLINE_SIMPLE_STRUCTS);
1521  QCString baseName;
1522 
1523  //printf("Member: %s: templateMaster=%p group=%p classDef=%p nspace=%p fileDef=%p\n",
1524  // qPrint(name()),m_impl->templateMaster,m_impl->group,m_impl->classDef,
1525  // m_impl->nspace,m_impl->fileDef);
1526  const NamespaceDef *nspace = getNamespaceDef();
1527  const FileDef *fileDef = getFileDef();
1528  const ClassDef *classDef = getClassDef();
1529  const GroupDef *groupDef = getGroupDef();
1531  {
1533  }
1534  else if (templateMaster())
1535  {
1536  return templateMaster()->getOutputFileBase();
1537  }
1538  else if (groupDef)
1539  {
1540  baseName=groupDef->getOutputFileBase();
1541  }
1542  else if (classDef)
1543  {
1544  baseName=classDef->getOutputFileBase();
1545  if (inlineSimpleClasses && classDef->isSimple())
1546  {
1547  return baseName;
1548  }
1549  }
1550  else if (nspace && (nspace->isLinkable() || nspace->isAnonymous()))
1551  {
1552  baseName=nspace->getOutputFileBase();
1553  }
1554  else if (fileDef)
1555  {
1556  baseName=fileDef->getOutputFileBase();
1557  }
1558 
1559  if (baseName.isEmpty())
1560  {
1562  "Internal inconsistency: member %s does not belong to any"
1563  " container!",qPrint(name())
1564  );
1565  return "dummy";
1566  }
1567  else if (separateMemberPages && hasDetailedDescription())
1568  {
1569  if (getEnumScope()) // enum value, which is part of enum's documentation
1570  {
1571  baseName+="_"+getEnumScope()->anchor();
1572  }
1573  else
1574  {
1575  baseName+="_"+anchor();
1576  }
1577  }
1578  return baseName;
1579 }

引用了 MemberDef::anchor(), anchor(), Config_getBool, MemberDefImpl::IMPL::explicitOutputFileBase, getClassDef(), DefinitionMixin< MemberDefMutable >::getDefFileName(), DefinitionMixin< MemberDefMutable >::getDefLine(), getEnumScope(), getFileDef(), getGroupDef(), getNamespaceDef(), GroupDef::getOutputFileBase(), NamespaceDef::getOutputFileBase(), MemberDef::getOutputFileBase(), FileDef::getOutputFileBase(), ClassDef::getOutputFileBase(), hasDetailedDescription(), Definition::isAnonymous(), QCString::isEmpty(), NamespaceDef::isLinkable(), ClassDef::isSimple(), m_impl, DefinitionMixin< MemberDefMutable >::name(), qPrint(), templateMaster() , 以及 warn().

被这些函数引用 addListReference(), writeDeclaration(), writeDocumentation(), writeLink(), writeMemberDocSimple() , 以及 writeTagFile().

◆ getReadAccessor()

QCString MemberDefImpl::getReadAccessor ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4823 行定义.

4824 {
4825  return m_impl->read;
4826 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::read.

◆ getReference()

QCString MemberDefImpl::getReference ( ) const
virtual

If this definition was imported via a tag file, this function returns the tagfile for the external project. This can be translated into an external link target via Doxygen::tagDestinationDict

实现了 MemberDef.

在文件 memberdef.cpp1581 行定义.

1582 {
1584  if (!ref.isEmpty())
1585  {
1586  return ref;
1587  }
1588  const NamespaceDef *nspace = getNamespaceDef();
1589  const FileDef *fileDef = getFileDef();
1590  const ClassDef *classDef = getClassDef();
1591  const GroupDef *groupDef = getGroupDef();
1592  if (templateMaster())
1593  {
1594  return templateMaster()->getReference();
1595  }
1596  else if (groupDef)
1597  {
1598  return groupDef->getReference();
1599  }
1600  else if (classDef)
1601  {
1602  return classDef->getReference();
1603  }
1604  else if (nspace)
1605  {
1606  return nspace->getReference();
1607  }
1608  else if (fileDef)
1609  {
1610  return fileDef->getReference();
1611  }
1612  return "";
1613 }

引用了 getClassDef(), getFileDef(), getGroupDef(), getNamespaceDef(), MemberDef::getReference(), ClassDef::getReference(), DefinitionMixin< Base >::getReference(), Definition::getReference(), QCString::isEmpty() , 以及 templateMaster().

被这些函数引用 anchor() , 以及 writeLink().

◆ getScopeString()

QCString MemberDefImpl::getScopeString ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4082 行定义.

4083 {
4084  QCString result;
4085  if (getClassDef()) result=getClassDef()->displayName();
4086  else if (getNamespaceDef()) result=getNamespaceDef()->displayName();
4087  return result;
4088 }

引用了 NamespaceDef::displayName(), ClassDef::displayName(), getClassDef() , 以及 getNamespaceDef().

◆ getSectionList()

const MemberList * MemberDefImpl::getSectionList ( const Definition container) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4293 行定义.

4294 {
4295  auto it = m_impl->sectionMap.find(container);
4296  return it!=m_impl->sectionMap.end() ? it->second : 0;
4297 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::sectionMap.

◆ getWriteAccessor()

QCString MemberDefImpl::getWriteAccessor ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4828 行定义.

4829 {
4830  return m_impl->write;
4831 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::write.

◆ hasCallerGraph()

bool MemberDefImpl::hasCallerGraph ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5381 行定义.

5382 {
5383  return m_impl->hasCallerGraph;
5384 }

引用了 MemberDefImpl::IMPL::hasCallerGraph , 以及 m_impl.

被这些函数引用 MemberDefImpl::IMPL::init().

◆ hasCallGraph()

bool MemberDefImpl::hasCallGraph ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5363 行定义.

5364 {
5365  return m_impl->hasCallGraph;
5366 }

引用了 MemberDefImpl::IMPL::hasCallGraph , 以及 m_impl.

被这些函数引用 MemberDefImpl::IMPL::init().

◆ hasDetailedDescription()

bool MemberDefImpl::hasDetailedDescription ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp2491 行定义.

2492 {
2493  //printf(">hasDetailedDescription(cached=%d)\n",m_impl->hasDetailedDescriptionCached);
2495  {
2496  static bool extractAll = Config_getBool(EXTRACT_ALL);
2497  static bool alwaysDetailedSec = Config_getBool(ALWAYS_DETAILED_SEC);
2498  static bool repeatBrief = Config_getBool(REPEAT_BRIEF);
2499  static bool briefMemberDesc = Config_getBool(BRIEF_MEMBER_DESC);
2500  static bool hideUndocMembers = Config_getBool(HIDE_UNDOC_MEMBERS);
2501  static bool extractStatic = Config_getBool(EXTRACT_STATIC);
2502  static bool extractPrivateVirtual = Config_getBool(EXTRACT_PRIV_VIRTUAL);
2503  static bool inlineSources = Config_getBool(INLINE_SOURCES);
2504 
2505  // the member has detailed documentation because the user added some comments
2506  bool docFilter =
2507  // extract all is enabled
2508  extractAll ||
2509  // has detailed docs
2510  !documentation().isEmpty() ||
2511  // has inbody docs
2513  // is an enum with values that are documented
2515  // is documented enum value
2517  // has brief description that is part of the detailed description
2518  (!briefDescription().isEmpty() && // has brief docs
2519  (alwaysDetailedSec && // they are visible in
2520  (repeatBrief || // detailed section or
2521  !briefMemberDesc // they are explicitly not
2522  ) // shown in brief section
2523  )
2524  ) ||
2525  // has one or more documented arguments
2529 
2530  // generate function guard
2531  // ================== =======
2532  // _writeGroupInclude -> ignored in calculation
2533  // multiLineInitializer() -> hasMultiLineInitializer()
2534  // _writeReimplements -> _isReimplements()
2535  // _writeReimplementedBy -> _countReimplementedBy()>0
2536  // _writeExamples -> hasExamples()
2537  // _writeTypeConstraints -> m_impl->typeConstraints.hasParameters()
2538  // writeSourceDef -> !getSourceFileBase().isEmpty();
2539  // writeInlineCode -> INLINE_SOURCES && hasSources()
2540  // writeSourceRefs -> hasReferencesRelation() && hasSourceRefs()
2541  // writeSourceReffedBy -> hasReferencedByRelation() && hasSourceReffedBy()
2542  // _writeCallGraph -> _hasVisibleCallGraph()
2543  // _writeCallerGraph -> _hasVisibleCallerGraph()
2544 
2545  // the member has detailed documentation because there is some generated info
2546  bool docInfo =
2547  // has a multi-line initialization block
2549  // reimplements / reimplemented by
2550  _isReimplements() || (_countReimplementedBy() > 0) ||
2551  // examples
2552  hasExamples() ||
2553  // type constraints
2555  // has source definition
2556  !getSourceFileBase().isEmpty() ||
2557  // has inline sources
2558  (inlineSources && hasSources()) ||
2559  // has references
2562  // call graph
2564  // caller graph
2566 
2567  if (!hideUndocMembers) // if HIDE_UNDOC_MEMBERS is NO we also show the detailed section
2568  // if there is only some generated info
2569  {
2570  docFilter = docFilter || docInfo;
2571  }
2572 
2573  // this is not a global static or global statics should be extracted
2574  bool staticFilter = getClassDef()!=0 || !isStatic() || extractStatic;
2575 
2576  // only include members that are non-private unless EXTRACT_PRIVATE is
2577  // set to YES or the member is part of a group
2578  bool privateFilter = protectionLevelVisible(protection()) || m_impl->mtype==MemberType_Friend ||
2579  (m_impl->prot==Private && m_impl->virt!=Normal && extractPrivateVirtual);
2580 
2581  // hide friend (class|struct|union) member if HIDE_FRIEND_COMPOUNDS
2582  // is true
2583  bool friendCompoundFilter = !(Config_getBool(HIDE_FRIEND_COMPOUNDS) && isFriend());
2584 
2586  (docFilter && staticFilter && privateFilter && friendCompoundFilter && !isHidden());
2587  //printf("docFilter=%d docInfo=%d staticFilter=%d privateFilter=%d friendCompoundFilter=%d !isHidden()=%d",
2588  // docFilter,docInfo,staticFilter,privateFilter,friendCompoundFilter,!isHidden());
2590  }
2591  //printf("<hasDetailedDescription(cached=%d)\n",m_impl->hasDetailedDescriptionCached);
2593 }

引用了 _countReimplementedBy(), _hasVisibleCallerGraph(), _hasVisibleCallGraph(), _isReimplements(), MemberDef::argumentList(), briefDescription(), Config_getBool, MemberDefImpl::IMPL::defArgList, MemberDefImpl::IMPL::detailedDescriptionCachedValue, documentation(), getClassDef(), DefinitionMixin< MemberDefMutable >::getSourceFileBase(), MemberDefImpl::IMPL::hasDetailedDescriptionCached, ArgumentList::hasDocumentation(), hasDocumentedEnumValues(), hasExamples(), hasMultiLineInitializer(), ArgumentList::hasParameters(), hasReferencedByRelation(), hasReferencesRelation(), DefinitionMixin< MemberDefMutable >::hasSourceReffedBy(), DefinitionMixin< MemberDefMutable >::hasSourceRefs(), DefinitionMixin< MemberDefMutable >::hasSources(), DefinitionMixin< MemberDefMutable >::inbodyDocumentation(), QCString::isEmpty(), isEnumerate(), isFriend(), DefinitionMixin< MemberDefMutable >::isHidden(), isStatic(), m_impl, MemberType_EnumValue, MemberType_Friend, MemberDefImpl::IMPL::mtype, Normal, Private, MemberDefImpl::IMPL::prot, protection(), protectionLevelVisible(), MemberDefImpl::IMPL::templateMaster, MemberDefImpl::IMPL::typeConstraints , 以及 MemberDefImpl::IMPL::virt.

被这些函数引用 getOutputFileBase(), isDetailedSectionVisible(), warnIfUndocumented(), writeDeclaration() , 以及 writeLink().

◆ hasDocumentation()

bool MemberDefImpl::hasDocumentation ( ) const
virtual

Returns TRUE iff the definition is documented (which could be generated documentation)

参见
hasUserDocumentation()

实现了 MemberDef.

在文件 memberdef.cpp4063 行定义.

4064 {
4066  (m_impl->mtype==MemberType_Enumeration && m_impl->docEnumValues) || // has enum values
4067  (m_impl->defArgList.hasDocumentation()); // has doc arguments
4068 }

引用了 MemberDefImpl::IMPL::defArgList, MemberDefImpl::IMPL::docEnumValues, ArgumentList::hasDocumentation(), DefinitionMixin< Base >::hasDocumentation(), m_impl, MemberType_Enumeration , 以及 MemberDefImpl::IMPL::mtype.

被这些函数引用 _computeLinkableInProject(), isBriefSectionVisible(), visibleInIndex() , 以及 warnIfUndocumentedParams().

◆ hasDocumentedEnumValues()

bool MemberDefImpl::hasDocumentedEnumValues ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5215 行定义.

5216 {
5217  return m_impl->docEnumValues;
5218 }

引用了 MemberDefImpl::IMPL::docEnumValues , 以及 m_impl.

被这些函数引用 hasDetailedDescription() , 以及 writeEnumDeclaration().

◆ hasExamples()

bool MemberDefImpl::hasExamples ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp1512 行定义.

1513 {
1514  return !m_impl->examples.empty();
1515 }

引用了 MemberDefImpl::IMPL::examples , 以及 m_impl.

被这些函数引用 _writeExamples() , 以及 hasDetailedDescription().

◆ hasMultiLineInitializer()

bool MemberDefImpl::hasMultiLineInitializer ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4216 行定义.

4217 {
4218  //printf("initLines=%d userInitLines=%d maxInitLines=%d\n",
4219  // initLines,userInitLines,maxInitLines);
4220  return m_impl->initLines>0 &&
4221  ((m_impl->initLines<m_impl->maxInitLines && m_impl->userInitLines==-1) // implicitly enabled
4222  || m_impl->initLines<m_impl->userInitLines // explicitly enabled
4223  );
4224 }

引用了 MemberDefImpl::IMPL::initLines, m_impl, MemberDefImpl::IMPL::maxInitLines , 以及 MemberDefImpl::IMPL::userInitLines.

被这些函数引用 hasDetailedDescription() , 以及 writeDocumentation().

◆ hasOneLineInitializer()

bool MemberDefImpl::hasOneLineInitializer ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4207 行定义.

4208 {
4209  //printf("%s: init=%s, initLines=%d maxInitLines=%d userInitLines=%d\n",
4210  // qPrint(name()),qPrint(m_impl->initializer),m_impl->initLines,
4211  // m_impl->maxInitLines,m_impl->userInitLines);
4212  return !m_impl->initializer.isEmpty() && m_impl->initLines==0 && // one line initializer
4213  ((m_impl->maxInitLines>0 && m_impl->userInitLines==-1) || m_impl->userInitLines>0); // enabled by default or explicitly
4214 }

引用了 MemberDefImpl::IMPL::initializer, MemberDefImpl::IMPL::initLines, QCString::isEmpty(), m_impl, MemberDefImpl::IMPL::maxInitLines , 以及 MemberDefImpl::IMPL::userInitLines.

被这些函数引用 writeDeclaration() , 以及 writeDocumentation().

◆ hasReferencedByRelation()

bool MemberDefImpl::hasReferencedByRelation ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5399 行定义.

5400 {
5402 }

引用了 MemberDefImpl::IMPL::hasReferencedByRelation , 以及 m_impl.

被这些函数引用 hasDetailedDescription(), MemberDefImpl::IMPL::init() , 以及 writeDocumentation().

◆ hasReferencesRelation()

bool MemberDefImpl::hasReferencesRelation ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5404 行定义.

5405 {
5406  return m_impl->hasReferencesRelation;
5407 }

引用了 MemberDefImpl::IMPL::hasReferencesRelation , 以及 m_impl.

被这些函数引用 hasDetailedDescription(), MemberDefImpl::IMPL::init() , 以及 writeDocumentation().

◆ incrementFlowKeyWordCount()

void MemberDefImpl::incrementFlowKeyWordCount ( )
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5769 行定义.

5770 {
5772 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::numberOfFlowKW.

◆ inheritsDocsFrom()

const MemberDef * MemberDefImpl::inheritsDocsFrom ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5445 行定义.

5446 {
5447  return m_impl->docProvider;
5448 }

引用了 MemberDefImpl::IMPL::docProvider , 以及 m_impl.

◆ initializer()

const QCString & MemberDefImpl::initializer ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4793 行定义.

4794 {
4795  return m_impl->initializer;
4796 }

引用了 MemberDefImpl::IMPL::initializer , 以及 m_impl.

被这些函数引用 setInitializer().

◆ initializerLines()

int MemberDefImpl::initializerLines ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4798 行定义.

4799 {
4800  return m_impl->initLines;
4801 }

引用了 MemberDefImpl::IMPL::initLines , 以及 m_impl.

◆ insertEnumField()

void MemberDefImpl::insertEnumField ( const MemberDef md)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp1501 行定义.

1502 {
1504 }

引用了 MemberDefImpl::IMPL::enumFields, m_impl , 以及 MemberVector::push_back().

◆ insertReimplementedBy()

void MemberDefImpl::insertReimplementedBy ( const MemberDef md)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp1456 行定义.

1457 {
1458  if (m_impl->templateMaster)
1459  {
1461  if (mdm)
1462  {
1463  mdm->insertReimplementedBy(md);
1464  }
1465  }
1466  if (!m_impl->redefinedBy.contains(md))
1467  {
1468  m_impl->redefinedBy.inSort(md);
1469  }
1470 }

引用了 MemberVector::contains(), MemberDefMutable::insertReimplementedBy(), MemberVector::inSort(), m_impl, MemberDefImpl::IMPL::redefinedBy, MemberDefImpl::IMPL::templateMaster , 以及 toMemberDefMutable().

◆ invalidateCachedArgumentTypes()

void MemberDefImpl::invalidateCachedArgumentTypes ( )
virtual

◆ invalidateTypedefValCache()

void MemberDefImpl::invalidateTypedefValCache ( )
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5655 行定义.

5656 {
5658 }

引用了 FALSE, MemberDefImpl::IMPL::isTypedefValCached , 以及 m_impl.

◆ isAbstract()

bool MemberDefImpl::isAbstract ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5053 行定义.

5054 {
5055  return (m_impl->memSpec&Entry::Abstract)!=0;
5056 }

引用了 Entry::Abstract, m_impl , 以及 MemberDefImpl::IMPL::memSpec.

被这些函数引用 getLabels().

◆ isAddable()

bool MemberDefImpl::isAddable ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5003 行定义.

5004 {
5005  return (m_impl->memSpec&Entry::Addable)!=0;
5006 }

引用了 Entry::Addable, m_impl , 以及 MemberDefImpl::IMPL::memSpec.

被这些函数引用 getLabels() , 以及 writeDeclaration().

◆ isAssign()

bool MemberDefImpl::isAssign ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5078 行定义.

5079 {
5080  return (m_impl->memSpec&Entry::Assign)!=0;
5081 }

引用了 Entry::Assign, m_impl , 以及 MemberDefImpl::IMPL::memSpec.

被这些函数引用 getLabels().

◆ isAttribute()

bool MemberDefImpl::isAttribute ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5135 行定义.

5136 {
5137  return (m_impl->memSpec&Entry::Attribute)!=0;
5138 }

引用了 Entry::Attribute, m_impl , 以及 MemberDefImpl::IMPL::memSpec.

被这些函数引用 getLabels().

◆ isBound()

bool MemberDefImpl::isBound ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5150 行定义.

5151 {
5152  return (m_impl->memSpec&Entry::Bound)!=0;
5153 }

引用了 Entry::Bound, m_impl , 以及 MemberDefImpl::IMPL::memSpec.

被这些函数引用 getLabels().

◆ isBriefSectionVisible()

bool MemberDefImpl::isBriefSectionVisible ( ) const
virtual

This methods returns TRUE iff the brief section (also known as declaration section) is visible in the documentation.

实现了 MemberDef.

在文件 memberdef.cpp1881 行定义.

1882 {
1883  static bool extractStatic = Config_getBool(EXTRACT_STATIC);
1884  static bool extractPrivateVirtual = Config_getBool(EXTRACT_PRIV_VIRTUAL);
1885  static bool hideUndocMembers = Config_getBool(HIDE_UNDOC_MEMBERS);
1886  static bool briefMemberDesc = Config_getBool(BRIEF_MEMBER_DESC);
1887  static bool repeatBrief = Config_getBool(REPEAT_BRIEF);
1888  static bool hideFriendCompounds = Config_getBool(HIDE_FRIEND_COMPOUNDS);
1889 
1890  //printf("Member %s grpId=%d docs=%s file=%s args=%s\n",
1891  // qPrint(name()),
1892  // 0,"", //grpId,grpId==-1?"<none>":Doxygen::memberDocDict[grpId]->data(),
1893  // "", //qPrint(getFileDef()->name()),
1894  // argsString());
1895 
1896  auto it = Doxygen::memberGroupInfoMap.find(m_impl->grpId);
1897  bool hasDocs = hasDocumentation();
1898  if (it!=Doxygen::memberGroupInfoMap.end())
1899  {
1900  auto &info = it->second;
1901  //printf("name=%s m_impl->grpId=%d info=%p\n",qPrint(name()),m_impl->grpId,info);
1902  //QCString *pMemGrp = Doxygen::memberDocDict[grpId];
1903  hasDocs = hasDocs ||
1904  // part of a documented member group
1905  (m_impl->grpId!=-1 && !(info->doc.isEmpty() && info->header.isEmpty()));
1906  }
1907 
1908  // only include static members with file/namespace scope if
1909  // explicitly enabled in the config file
1910  bool visibleIfStatic = !(getClassDef()==0 &&
1911  isStatic() &&
1912  !extractStatic
1913  );
1914 
1915  // only include members is the are documented or
1916  // HIDE_UNDOC_MEMBERS is NO in the config file
1917  bool visibleIfDocumented = (!hideUndocMembers ||
1918  hasDocs ||
1920  );
1921 
1922  // hide members with no detailed description and brief descriptions
1923  // explicitly disabled.
1924  bool visibleIfEnabled = !(hideUndocMembers &&
1925  documentation().isEmpty() &&
1926  !briefMemberDesc &&
1927  !repeatBrief
1928  );
1929 
1930  // Hide friend (class|struct|union) declarations if HIDE_FRIEND_COMPOUNDS is true
1931  bool visibleIfFriendCompound = !(hideFriendCompounds &&
1932  isFriend() /*&&
1933  (m_impl->type=="friend class" ||
1934  m_impl->type=="friend struct" ||
1935  m_impl->type=="friend union"
1936  )*/
1937  );
1938 
1939  // only include members that are non-private unless EXTRACT_PRIVATE is
1940  // set to YES or the member is part of a group. And as a special case,
1941  // private *documented* virtual members are shown if EXTRACT_PRIV_VIRTUAL
1942  // is set to YES
1943  bool visibleIfPrivate = (protectionLevelVisible(protection()) ||
1945  (m_impl->prot==Private && m_impl->virt!=Normal && extractPrivateVirtual && hasDocs)
1946  );
1947 
1948  // hide member if it overrides a member in a superclass and has no
1949  // documentation of its own
1950  //bool visibleIfDocVirtual = !reimplements() ||
1951  // !Config_getBool(INHERIT_DOCS) ||
1952  // hasDocs;
1953 
1954  // true if this member is a constructor or destructor
1955  bool cOrDTor = isConstructor() || isDestructor();
1956 
1957  // hide default constructors or destructors (no args) without
1958  // documentation
1959  bool visibleIfNotDefaultCDTor = !(cOrDTor &&
1960  (m_impl->defArgList.empty() ||
1961  m_impl->defArgList.front().type == "void"
1962  ) &&
1963  !hasDocs
1964  );
1965 
1966 
1967  //printf("visibleIfStatic=%d visibleIfDocumented=%d visibleIfEnabled=%d "
1968  // "visibleIfPrivate=%d visibleIfNotDefaultCDTor=%d "
1969  // "visibleIfFriendCompound=%d !annScope=%d\n",
1970  // visibleIfStatic,visibleIfDocumented,
1971  // visibleIfEnabled,visibleIfPrivate,visibleIfNotDefaultCDTor,
1972  // visibleIfFriendCompound,!m_impl->annScope);
1973 
1974  bool visible = visibleIfStatic && visibleIfDocumented &&
1975  visibleIfEnabled && visibleIfPrivate &&
1976  /*visibleIfDocVirtual &&*/ visibleIfNotDefaultCDTor &&
1977  visibleIfFriendCompound &&
1978  !m_impl->annScope && !isHidden();
1979  //printf("MemberDefImpl::isBriefSectionVisible() %d\n",visible);
1980  return visible;
1981 }

引用了 MemberDefImpl::IMPL::annScope, Config_getBool, MemberDefImpl::IMPL::defArgList, documentation(), ArgumentList::empty(), end(), ArgumentList::front(), getClassDef(), MemberDefImpl::IMPL::grpId, hasDocumentation(), isConstructor(), isDestructor(), isDocumentedFriendClass(), QCString::isEmpty(), isFriend(), DefinitionMixin< MemberDefMutable >::isHidden(), isStatic(), m_impl, Doxygen::memberGroupInfoMap, MemberType_Friend, MemberDefImpl::IMPL::mtype, Normal, Private, MemberDefImpl::IMPL::prot, protection(), protectionLevelVisible(), Argument::type , 以及 MemberDefImpl::IMPL::virt.

被这些函数引用 writeEnumDeclaration().

◆ isConstExpr()

bool MemberDefImpl::isConstExpr ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5245 行定义.

5246 {
5247  return (m_impl->memSpec&Entry::ConstExpr)!=0;
5248 }

引用了 Entry::ConstExpr, m_impl , 以及 MemberDefImpl::IMPL::memSpec.

被这些函数引用 getLabels().

◆ isConstrained()

bool MemberDefImpl::isConstrained ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5155 行定义.

5156 {
5157  return (m_impl->memSpec&Entry::Constrained)!=0;
5158 }

引用了 Entry::Constrained, m_impl , 以及 MemberDefImpl::IMPL::memSpec.

被这些函数引用 getLabels().

◆ isConstructor()

bool MemberDefImpl::isConstructor ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4438 行定义.

4439 {
4440  if (m_isConstructorCached==0)
4441  {
4442  MemberDefImpl *that = (MemberDefImpl*)this;
4443  that->_computeIsConstructor();
4444  }
4446  return m_isConstructorCached==2;
4447 
4448 }

引用了 _computeIsConstructor(), ASSERT , 以及 m_isConstructorCached.

被这些函数引用 detectUndocumentedParams(), isBriefSectionVisible() , 以及 showInCallGraph().

◆ isCopy()

bool MemberDefImpl::isCopy ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5073 行定义.

5074 {
5075  return (m_impl->memSpec&Entry::Copy)!=0;
5076 }

引用了 Entry::Copy, m_impl , 以及 MemberDefImpl::IMPL::memSpec.

被这些函数引用 getLabels().

◆ isDCOP()

bool MemberDefImpl::isDCOP ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4928 行定义.

4929 {
4930  return m_impl->mtype==MemberType_DCOP;
4931 }

引用了 m_impl, MemberType_DCOP , 以及 MemberDefImpl::IMPL::mtype.

◆ isDefault()

bool MemberDefImpl::isDefault ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5120 行定义.

5121 {
5122  return (m_impl->memSpec&Entry::Default)!=0;
5123 }

引用了 Entry::Default, m_impl , 以及 MemberDefImpl::IMPL::memSpec.

被这些函数引用 getLabels().

◆ isDefine()

bool MemberDefImpl::isDefine ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4918 行定义.

4919 {
4920  return m_impl->mtype==MemberType_Define;
4921 }

引用了 m_impl, MemberType_Define , 以及 MemberDefImpl::IMPL::mtype.

被这些函数引用 writeDeclaration() , 以及 writeDocumentation().

◆ isDelete()

bool MemberDefImpl::isDelete ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5125 行定义.

5126 {
5127  return (m_impl->memSpec&Entry::Delete)!=0;
5128 }

引用了 Entry::Delete, m_impl , 以及 MemberDefImpl::IMPL::memSpec.

被这些函数引用 getLabels().

◆ isDeleted()

bool MemberDefImpl::isDeleted ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4058 行定义.

4059 {
4060  return m_impl->defArgList.isDeleted();
4061 }

引用了 MemberDefImpl::IMPL::defArgList, ArgumentList::isDeleted() , 以及 m_impl.

被这些函数引用 warnIfUndocumented() , 以及 warnIfUndocumentedParams().

◆ isDestructor()

bool MemberDefImpl::isDestructor ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4475 行定义.

4476 {
4477  if (m_isDestructorCached==0)
4478  {
4479  MemberDefImpl *that=(MemberDefImpl*)this;
4480  that->_computeIsDestructor();
4481  }
4483  return m_isDestructorCached==2;
4484 }

引用了 _computeIsDestructor(), ASSERT , 以及 m_isDestructorCached.

被这些函数引用 _computeIsDestructor(), detectUndocumentedParams(), isBriefSectionVisible() , 以及 showInCallGraph().

◆ isDetailedSectionVisible()

bool MemberDefImpl::isDetailedSectionVisible ( MemberListContainer  container) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp2595 行定义.

2596 {
2597  static bool separateMemPages = Config_getBool(SEPARATE_MEMBER_PAGES);
2598  static bool inlineSimpleStructs = Config_getBool(INLINE_SIMPLE_STRUCTS);
2599  static bool hideUndocMembers = Config_getBool(HIDE_UNDOC_MEMBERS);
2600  bool groupFilter = getGroupDef()==0 || container==MemberListContainer::Group || separateMemPages;
2601  bool fileFilter = getNamespaceDef()==0 || !getNamespaceDef()->isLinkable() || container!=MemberListContainer::File;
2602  bool simpleFilter = (hasBriefDescription() || !hideUndocMembers) && inlineSimpleStructs &&
2603  getClassDef()!=0 && getClassDef()->isSimple();
2604 
2605  bool visible = hasDetailedDescription() && groupFilter && fileFilter &&
2606  !isReference();
2607  bool result = visible || simpleFilter;
2608  //printf("%s::isDetailedSectionVisible: %d groupFilter=%d fileFilter=%d\n",
2609  // qPrint(name()),result,groupFilter,fileFilter);
2610  return result;
2611 }

引用了 Config_getBool, File, getClassDef(), getGroupDef(), getNamespaceDef(), Group, DefinitionMixin< MemberDefMutable >::hasBriefDescription(), hasDetailedDescription(), NamespaceDef::isLinkable(), isReference() , 以及 ClassDef::isSimple().

◆ isDictionary()

bool MemberDefImpl::isDictionary ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4903 行定义.

4904 {
4906 }

引用了 m_impl, MemberType_Dictionary , 以及 MemberDefImpl::IMPL::mtype.

◆ isDocsForDefinition()

bool MemberDefImpl::isDocsForDefinition ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5225 行定义.

5226 {
5227  return m_impl->docsForDefinition;
5228 }

引用了 MemberDefImpl::IMPL::docsForDefinition , 以及 m_impl.

被这些函数引用 detectUndocumentedParams().

◆ isDocumentedFriendClass()

bool MemberDefImpl::isDocumentedFriendClass ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4048 行定义.

4049 {
4050  ClassDef *fcd=0;
4051  QCString baseName=name();
4052  int i=baseName.find('<');
4053  if (i!=-1) baseName=baseName.left(i);
4054  return (isFriendClass() &&
4055  (fcd=getClass(baseName)) && fcd->isLinkable());
4056 }

引用了 QCString::find(), getClass(), isFriendClass(), ClassDef::isLinkable(), QCString::left() , 以及 DefinitionMixin< MemberDefMutable >::name().

被这些函数引用 isBriefSectionVisible() , 以及 writeDeclaration().

◆ isEnumerate()

bool MemberDefImpl::isEnumerate ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4883 行定义.

4884 {
4886 }

引用了 m_impl, MemberType_Enumeration , 以及 MemberDefImpl::IMPL::mtype.

被这些函数引用 _writeEnumValues(), displayDefinition(), getDeclType(), hasDetailedDescription() , 以及 writeDocumentation().

◆ isEnumStruct()

bool MemberDefImpl::isEnumStruct ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5098 行定义.

5099 {
5100  return (m_impl->memSpec&Entry::EnumStruct)!=0;
5101 }

引用了 Entry::EnumStruct, m_impl , 以及 MemberDefImpl::IMPL::memSpec.

被这些函数引用 getDeclType() , 以及 writeDocumentation().

◆ isEnumValue()

bool MemberDefImpl::isEnumValue ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4888 行定义.

4889 {
4891 }

引用了 m_impl, MemberType_EnumValue , 以及 MemberDefImpl::IMPL::mtype.

被这些函数引用 displayDefinition() , 以及 writeDocumentation().

◆ isEvent()

bool MemberDefImpl::isEvent ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4938 行定义.

4939 {
4940  return m_impl->mtype==MemberType_Event;
4941 }

引用了 m_impl, MemberType_Event , 以及 MemberDefImpl::IMPL::mtype.

被这些函数引用 writeDeclaration().

◆ isExplicit()

bool MemberDefImpl::isExplicit ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4963 行定义.

4964 {
4965  return (m_impl->memSpec&Entry::Explicit)!=0;
4966 }

引用了 Entry::Explicit, m_impl , 以及 MemberDefImpl::IMPL::memSpec.

被这些函数引用 getLabels().

◆ isExternal()

bool MemberDefImpl::isExternal ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5191 行定义.

5192 {
5193  return m_impl->explExt;
5194 }

引用了 MemberDefImpl::IMPL::explExt , 以及 m_impl.

被这些函数引用 getLabels().

◆ isFinal()

bool MemberDefImpl::isFinal ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5028 行定义.

5029 {
5030  return (m_impl->memSpec&Entry::Final)!=0;
5031 }

引用了 Entry::Final, m_impl , 以及 MemberDefImpl::IMPL::memSpec.

被这些函数引用 getLabels().

◆ isForeign()

bool MemberDefImpl::isForeign ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4948 行定义.

4949 {
4950  return m_impl->related == Foreign;
4951 }

引用了 Foreign, m_impl , 以及 MemberDefImpl::IMPL::related.

被这些函数引用 isRelatedOrFriend().

◆ isFriend()

bool MemberDefImpl::isFriend ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4923 行定义.

4924 {
4925  return m_impl->mtype==MemberType_Friend;
4926 }

引用了 m_impl, MemberType_Friend , 以及 MemberDefImpl::IMPL::mtype.

被这些函数引用 getLabels(), hasDetailedDescription(), isBriefSectionVisible(), isFriendClass(), isNotFriend() , 以及 isRelatedOrFriend().

◆ isFriendClass()

bool MemberDefImpl::isFriendClass ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5991 行定义.

5992 {
5993  return (isFriend() &&
5994  (m_impl->type=="friend class" || m_impl->type=="friend struct" ||
5995  m_impl->type=="friend union"));
5996 }

引用了 isFriend(), m_impl , 以及 MemberDefImpl::IMPL::type.

被这些函数引用 isDocumentedFriendClass() , 以及 warnIfUndocumented().

◆ isFriendToHide()

bool MemberDefImpl::isFriendToHide ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5981 行定义.

5982 {
5983  static bool hideFriendCompounds = Config_getBool(HIDE_FRIEND_COMPOUNDS);
5984  bool isFriendToHide = hideFriendCompounds &&
5985  (m_impl->type=="friend class" ||
5986  m_impl->type=="friend struct" ||
5987  m_impl->type=="friend union");
5988  return isFriendToHide;
5989 }

引用了 Config_getBool, m_impl , 以及 MemberDefImpl::IMPL::type.

被这些函数引用 isNotFriend() , 以及 isRelatedOrFriend().

◆ isFunction()

bool MemberDefImpl::isFunction ( ) const
virtual

◆ isFunctionOrSignalSlot()

bool MemberDefImpl::isFunctionOrSignalSlot ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp6004 行定义.

6005 {
6006  return isFunction() || isSlot() || isSignal();
6007 }

引用了 isFunction(), isSignal() , 以及 isSlot().

◆ isFunctionPtr()

bool MemberDefImpl::isFunctionPtr ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4913 行定义.

4914 {
4915  return m_impl->mtype==MemberType_Variable && QCString(argsString()).find(")(")!=-1;
4916 }

引用了 argsString(), QCString::find(), m_impl, MemberType_Variable , 以及 MemberDefImpl::IMPL::mtype.

◆ isGettable()

bool MemberDefImpl::isGettable ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4973 行定义.

4974 {
4975  return (m_impl->memSpec&Entry::Gettable)!=0;
4976 }

引用了 Entry::Gettable, m_impl , 以及 MemberDefImpl::IMPL::memSpec.

被这些函数引用 getLabels() , 以及 writeDeclaration().

◆ isImplementation()

bool MemberDefImpl::isImplementation ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5186 行定义.

5187 {
5188  return m_impl->implOnly;
5189 }

引用了 MemberDefImpl::IMPL::implOnly , 以及 m_impl.

被这些函数引用 getLabels() , 以及 writeDeclaration().

◆ isInitonly()

bool MemberDefImpl::isInitonly ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5048 行定义.

5049 {
5050  return (m_impl->memSpec&Entry::Initonly)!=0;
5051 }

引用了 Entry::Initonly, m_impl , 以及 MemberDefImpl::IMPL::memSpec.

被这些函数引用 getLabels().

◆ isInline()

bool MemberDefImpl::isInline ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4958 行定义.

4959 {
4960  return (m_impl->memSpec&Entry::Inline)!=0;
4961 }

引用了 Entry::Inline, m_impl , 以及 MemberDefImpl::IMPL::memSpec.

被这些函数引用 getLabels().

◆ isLinkable()

bool MemberDefImpl::isLinkable ( ) const
virtual

Returns TRUE iff it is possible to link to this item. This can be a link to another project imported via a tag file.

实现了 MemberDef.

在文件 memberdef.cpp1751 行定义.

1752 {
1753  if (m_impl->templateMaster)
1754  {
1755  return m_impl->templateMaster->isLinkable();
1756  }
1757  else
1758  {
1759  return isLinkableInProject() || isReference();
1760  }
1761 }

引用了 MemberDef::isLinkable(), isLinkableInProject(), isReference(), m_impl , 以及 MemberDefImpl::IMPL::templateMaster.

被这些函数引用 visibleInIndex() , 以及 writeLink().

◆ isLinkableInProject()

bool MemberDefImpl::isLinkableInProject ( ) const
virtual

Returns TRUE iff it is possible to link to this item within this project.

实现了 MemberDef.

在文件 memberdef.cpp1740 行定义.

1741 {
1742  if (m_isLinkableCached==0)
1743  {
1744  MemberDefImpl *that = (MemberDefImpl*)this;
1745  that->_computeLinkableInProject();
1746  }
1748  return m_isLinkableCached==2;
1749 }

引用了 _computeLinkableInProject(), ASSERT , 以及 m_isLinkableCached.

被这些函数引用 addListReference(), isLinkable(), writeEnumDeclaration() , 以及 writeTagFile().

◆ isMaybeAmbiguous()

bool MemberDefImpl::isMaybeAmbiguous ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5175 行定义.

5176 {
5177  return (m_impl->memSpec&Entry::MaybeAmbiguous)!=0;
5178 }

引用了 m_impl, Entry::MaybeAmbiguous , 以及 MemberDefImpl::IMPL::memSpec.

被这些函数引用 getLabels().

◆ isMaybeDefault()

bool MemberDefImpl::isMaybeDefault ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5170 行定义.

5171 {
5172  return (m_impl->memSpec&Entry::MaybeDefault)!=0;
5173 }

引用了 m_impl, Entry::MaybeDefault , 以及 MemberDefImpl::IMPL::memSpec.

被这些函数引用 getLabels().

◆ isMaybeVoid()

bool MemberDefImpl::isMaybeVoid ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5165 行定义.

5166 {
5167  return (m_impl->memSpec&Entry::MaybeVoid)!=0;
5168 }

引用了 m_impl, Entry::MaybeVoid , 以及 MemberDefImpl::IMPL::memSpec.

被这些函数引用 getLabels().

◆ isMutable()

bool MemberDefImpl::isMutable ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4968 行定义.

4969 {
4970  return (m_impl->memSpec&Entry::Mutable)!=0;
4971 }

引用了 m_impl, MemberDefImpl::IMPL::memSpec , 以及 Entry::Mutable.

被这些函数引用 getLabels().

◆ isNew()

bool MemberDefImpl::isNew ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5033 行定义.

5034 {
5035  return (m_impl->memSpec&Entry::New)!=0;
5036 }

引用了 m_impl, MemberDefImpl::IMPL::memSpec , 以及 Entry::New.

被这些函数引用 getLabels().

◆ isNoExcept()

bool MemberDefImpl::isNoExcept ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5130 行定义.

5131 {
5132  return (m_impl->memSpec&Entry::NoExcept)!=0;
5133 }

引用了 m_impl, MemberDefImpl::IMPL::memSpec , 以及 Entry::NoExcept.

被这些函数引用 getLabels().

◆ isNonAtomic()

bool MemberDefImpl::isNonAtomic ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5068 行定义.

5069 {
5070  return (m_impl->memSpec&Entry::NonAtomic)!=0;
5071 }

引用了 m_impl, MemberDefImpl::IMPL::memSpec , 以及 Entry::NonAtomic.

被这些函数引用 getLabels().

◆ isNotFriend()

bool MemberDefImpl::isNotFriend ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5999 行定义.

6000 {
6001  return !(isFriend() && isFriendToHide());
6002 }

引用了 isFriend() , 以及 isFriendToHide().

◆ isObjCMethod()

bool MemberDefImpl::isObjCMethod ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4694 行定义.

4695 {
4696  if (getClassDef() && getClassDef()->isObjectiveC() && isFunction()) return TRUE;
4697  return FALSE;
4698 }

引用了 FALSE, getClassDef(), isFunction() , 以及 TRUE.

被这些函数引用 addListReference(), getDeclType(), getLabels(), qualifiedName(), showInCallGraph(), writeDeclaration(), writeDocumentation(), writeLink() , 以及 writeMemberDocSimple().

◆ isObjCProperty()

bool MemberDefImpl::isObjCProperty ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4700 行定义.

4701 {
4702  if (getClassDef() && getClassDef()->isObjectiveC() && isProperty()) return TRUE;
4703  return FALSE;
4704 }

引用了 FALSE, getClassDef(), isProperty() , 以及 TRUE.

被这些函数引用 getLabels() , 以及 writeDeclaration().

◆ isOptional()

bool MemberDefImpl::isOptional ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5058 行定义.

5059 {
5060  return (m_impl->memSpec&Entry::Optional)!=0;
5061 }

引用了 m_impl, MemberDefImpl::IMPL::memSpec , 以及 Entry::Optional.

被这些函数引用 getLabels().

◆ isOverride()

bool MemberDefImpl::isOverride ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5043 行定义.

5044 {
5045  return (m_impl->memSpec&Entry::Override)!=0;
5046 }

引用了 m_impl, MemberDefImpl::IMPL::memSpec , 以及 Entry::Override.

被这些函数引用 getLabels().

◆ isPrivateGettable()

bool MemberDefImpl::isPrivateGettable ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4978 行定义.

4979 {
4980  return (m_impl->memSpec&Entry::PrivateGettable)!=0;
4981 }

引用了 m_impl, MemberDefImpl::IMPL::memSpec , 以及 Entry::PrivateGettable.

被这些函数引用 getLabels() , 以及 writeDeclaration().

◆ isPrivateSettable()

bool MemberDefImpl::isPrivateSettable ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4993 行定义.

4994 {
4995  return (m_impl->memSpec&Entry::PrivateSettable)!=0;
4996 }

引用了 m_impl, MemberDefImpl::IMPL::memSpec , 以及 Entry::PrivateSettable.

被这些函数引用 getLabels() , 以及 writeDeclaration().

◆ isProperty()

bool MemberDefImpl::isProperty ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4933 行定义.

4934 {
4935  return m_impl->mtype==MemberType_Property;
4936 }

引用了 m_impl, MemberType_Property , 以及 MemberDefImpl::IMPL::mtype.

被这些函数引用 isObjCProperty() , 以及 writeDeclaration().

◆ isProtectedGettable()

bool MemberDefImpl::isProtectedGettable ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4983 行定义.

4984 {
4986 }

引用了 m_impl, MemberDefImpl::IMPL::memSpec , 以及 Entry::ProtectedGettable.

被这些函数引用 getLabels() , 以及 writeDeclaration().

◆ isProtectedSettable()

bool MemberDefImpl::isProtectedSettable ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4998 行定义.

4999 {
5001 }

引用了 m_impl, MemberDefImpl::IMPL::memSpec , 以及 Entry::ProtectedSettable.

被这些函数引用 getLabels() , 以及 writeDeclaration().

◆ isPrototype()

bool MemberDefImpl::isPrototype ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5260 行定义.

5261 {
5262  return m_impl->proto;
5263 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::proto.

◆ isPublished()

bool MemberDefImpl::isPublished ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5180 行定义.

5181 {
5182  return (m_impl->memSpec&Entry::Published)!=0;
5183 }

引用了 m_impl, MemberDefImpl::IMPL::memSpec , 以及 Entry::Published.

被这些函数引用 getLabels().

◆ isRaisable()

bool MemberDefImpl::isRaisable ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5013 行定义.

5014 {
5015  return (m_impl->memSpec&Entry::Raisable)!=0;
5016 }

引用了 m_impl, MemberDefImpl::IMPL::memSpec , 以及 Entry::Raisable.

被这些函数引用 getLabels() , 以及 writeDeclaration().

◆ isReadable()

bool MemberDefImpl::isReadable ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5018 行定义.

5019 {
5020  return (m_impl->memSpec&Entry::Readable)!=0;
5021 }

引用了 m_impl, MemberDefImpl::IMPL::memSpec , 以及 Entry::Readable.

被这些函数引用 getLabels().

◆ isReadonly()

bool MemberDefImpl::isReadonly ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5145 行定义.

5146 {
5147  return (m_impl->memSpec&Entry::Readonly)!=0;
5148 }

引用了 m_impl, MemberDefImpl::IMPL::memSpec , 以及 Entry::Readonly.

被这些函数引用 getLabels().

◆ isReference()

bool MemberDefImpl::isReference ( ) const
virtual

Returns TRUE if this definition is imported via a tag file.

实现了 MemberDef.

在文件 memberdef.cpp6014 行定义.

6015 {
6016  return DefinitionMixin::isReference() ||
6018 }

引用了 DefinitionMixin< Base >::isReference(), MemberDef::isReference(), m_impl , 以及 MemberDefImpl::IMPL::templateMaster.

被这些函数引用 _computeLinkableInProject(), isDetailedSectionVisible(), isLinkable(), warnIfUndocumented(), warnIfUndocumentedParams() , 以及 writeDeclaration().

◆ isReimplementedBy()

bool MemberDefImpl::isReimplementedBy ( const ClassDef cd) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp1482 行定义.

1483 {
1484  if (cd)
1485  {
1486  for (const auto &md : m_impl->redefinedBy)
1487  {
1488  const ClassDef *mcd = md->getClassDef();
1489  if (mcd)
1490  {
1491  if (cd==mcd || cd->isBaseClass(mcd,TRUE))
1492  {
1493  return TRUE;
1494  }
1495  }
1496  }
1497  }
1498  return FALSE;
1499 }

引用了 FALSE, ClassDef::isBaseClass(), m_impl, MemberDefImpl::IMPL::redefinedBy , 以及 TRUE.

◆ isRelated()

bool MemberDefImpl::isRelated ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4943 行定义.

4944 {
4945  return m_impl->related == Related;
4946 }

引用了 m_impl, Related , 以及 MemberDefImpl::IMPL::related.

被这些函数引用 addListReference(), getLabels(), isRelatedOrFriend() , 以及 writeLink().

◆ isRelatedOrFriend()

bool MemberDefImpl::isRelatedOrFriend ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp6009 行定义.

6010 {
6011  return isRelated() || isForeign() || (isFriend() && !isFriendToHide());
6012 }

引用了 isForeign(), isFriend(), isFriendToHide() , 以及 isRelated().

◆ isRemovable()

bool MemberDefImpl::isRemovable ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5008 行定义.

5009 {
5010  return (m_impl->memSpec&Entry::Removable)!=0;
5011 }

引用了 m_impl, MemberDefImpl::IMPL::memSpec , 以及 Entry::Removable.

被这些函数引用 getLabels() , 以及 writeDeclaration().

◆ isRequired()

bool MemberDefImpl::isRequired ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5063 行定义.

5064 {
5065  return (m_impl->memSpec&Entry::Required)!=0;
5066 }

引用了 m_impl, MemberDefImpl::IMPL::memSpec , 以及 Entry::Required.

被这些函数引用 getLabels().

◆ isRetain()

bool MemberDefImpl::isRetain ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5083 行定义.

5084 {
5085  return (m_impl->memSpec&Entry::Retain)!=0;
5086 }

引用了 m_impl, MemberDefImpl::IMPL::memSpec , 以及 Entry::Retain.

被这些函数引用 getLabels().

◆ isSealed()

bool MemberDefImpl::isSealed ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5038 行定义.

5039 {
5040  return (m_impl->memSpec&Entry::Sealed)!=0;
5041 }

引用了 m_impl, MemberDefImpl::IMPL::memSpec , 以及 Entry::Sealed.

被这些函数引用 getLabels().

◆ isSequence()

bool MemberDefImpl::isSequence ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4898 行定义.

4899 {
4900  return m_impl->mtype==MemberType_Sequence;
4901 }

引用了 m_impl, MemberType_Sequence , 以及 MemberDefImpl::IMPL::mtype.

◆ isSettable()

bool MemberDefImpl::isSettable ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4988 行定义.

4989 {
4990  return (m_impl->memSpec&Entry::Settable)!=0;
4991 }

引用了 m_impl, MemberDefImpl::IMPL::memSpec , 以及 Entry::Settable.

被这些函数引用 getLabels() , 以及 writeDeclaration().

◆ isSignal()

bool MemberDefImpl::isSignal ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4868 行定义.

4869 {
4870  return m_impl->mtype==MemberType_Signal;
4871 }

引用了 m_impl, MemberType_Signal , 以及 MemberDefImpl::IMPL::mtype.

被这些函数引用 _hasVisibleCallerGraph(), _hasVisibleCallGraph(), getLabels() , 以及 isFunctionOrSignalSlot().

◆ isSliceLocal()

bool MemberDefImpl::isSliceLocal ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5240 行定义.

5241 {
5242  return (m_impl->memSpec&Entry::Local)!=0;
5243 }

引用了 Entry::Local, m_impl , 以及 MemberDefImpl::IMPL::memSpec.

被这些函数引用 displayDefinition() , 以及 writeDocumentation().

◆ isSlot()

bool MemberDefImpl::isSlot ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4873 行定义.

4874 {
4875  return m_impl->mtype==MemberType_Slot;
4876 }

引用了 m_impl, MemberType_Slot , 以及 MemberDefImpl::IMPL::mtype.

被这些函数引用 _hasVisibleCallerGraph(), _hasVisibleCallGraph(), getLabels(), isFunctionOrSignalSlot() , 以及 showInCallGraph().

◆ isStatic()

bool MemberDefImpl::isStatic ( ) const
virtual

◆ isStrong()

bool MemberDefImpl::isStrong ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5093 行定义.

5094 {
5095  return (m_impl->memSpec&Entry::Strong)!=0;
5096 }

引用了 m_impl, MemberDefImpl::IMPL::memSpec , 以及 Entry::Strong.

被这些函数引用 getDeclType(), getLabels(), writeDocumentation() , 以及 writeTagFile().

◆ isStrongEnumValue()

bool MemberDefImpl::isStrongEnumValue ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5103 行定义.

5104 {
5105  return m_impl->mtype==MemberType_EnumValue &&
5106  m_impl->enumScope &&
5108 }

引用了 MemberDefImpl::IMPL::enumScope, MemberDef::isStrong(), m_impl, MemberType_EnumValue , 以及 MemberDefImpl::IMPL::mtype.

◆ isTemplateSpecialization()

bool MemberDefImpl::isTemplateSpecialization ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5196 行定义.

5197 {
5198  return m_impl->tspec;
5199 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::tspec.

被这些函数引用 writeDocumentation().

◆ isTransient()

bool MemberDefImpl::isTransient ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5160 行定义.

5161 {
5162  return (m_impl->memSpec&Entry::Transient)!=0;
5163 }

引用了 m_impl, MemberDefImpl::IMPL::memSpec , 以及 Entry::Transient.

被这些函数引用 getLabels().

◆ isTypeAlias()

bool MemberDefImpl::isTypeAlias ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5115 行定义.

5116 {
5117  return (m_impl->memSpec&Entry::Alias)!=0;
5118 }

引用了 Entry::Alias, m_impl , 以及 MemberDefImpl::IMPL::memSpec.

被这些函数引用 getDeclType() , 以及 writeDeclaration().

◆ isTypedef()

bool MemberDefImpl::isTypedef ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4893 行定义.

4894 {
4895  return m_impl->mtype==MemberType_Typedef;
4896 }

引用了 m_impl, MemberType_Typedef , 以及 MemberDefImpl::IMPL::mtype.

被这些函数引用 fieldType(), getDeclType(), writeDeclaration() , 以及 writeDocumentation().

◆ isTypedefValCached()

bool MemberDefImpl::isTypedefValCached ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5414 行定义.

5415 {
5416  return m_impl->isTypedefValCached;
5417 }

引用了 MemberDefImpl::IMPL::isTypedefValCached , 以及 m_impl.

被这些函数引用 MemberDefImpl::IMPL::init().

◆ isUNOProperty()

bool MemberDefImpl::isUNOProperty ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5140 行定义.

5141 {
5142  return (m_impl->memSpec&Entry::Property)!=0;
5143 }

引用了 m_impl, MemberDefImpl::IMPL::memSpec , 以及 Entry::Property.

被这些函数引用 getLabels().

◆ isUnretained()

bool MemberDefImpl::isUnretained ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5110 行定义.

5111 {
5112  return (m_impl->memSpec&Entry::Unretained)!=0;
5113 }

引用了 m_impl, MemberDefImpl::IMPL::memSpec , 以及 Entry::Unretained.

被这些函数引用 getLabels().

◆ isVariable()

bool MemberDefImpl::isVariable ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4878 行定义.

4879 {
4880  return m_impl->mtype==MemberType_Variable;
4881 }

引用了 m_impl, MemberType_Variable , 以及 MemberDefImpl::IMPL::mtype.

被这些函数引用 writeDocumentation() , 以及 writeMemberDocSimple().

◆ isWeak()

bool MemberDefImpl::isWeak ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5088 行定义.

5089 {
5090  return (m_impl->memSpec&Entry::Weak)!=0;
5091 }

引用了 m_impl, MemberDefImpl::IMPL::memSpec , 以及 Entry::Weak.

被这些函数引用 getLabels().

◆ isWritable()

bool MemberDefImpl::isWritable ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5023 行定义.

5024 {
5025  return (m_impl->memSpec&Entry::Writable)!=0;
5026 }

引用了 m_impl, MemberDefImpl::IMPL::memSpec , 以及 Entry::Writable.

被这些函数引用 getLabels().

◆ livesInsideEnum()

bool MemberDefImpl::livesInsideEnum ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5235 行定义.

5236 {
5237  return m_impl->livesInsideEnum;
5238 }

引用了 MemberDefImpl::IMPL::livesInsideEnum , 以及 m_impl.

被这些函数引用 MemberDefImpl::IMPL::init() , 以及 setEnumScope().

◆ makeForeign()

void MemberDefImpl::makeForeign ( )
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5542 行定义.

5543 {
5544  m_impl->related = Foreign;
5545  m_isLinkableCached = 0;
5546 }

引用了 Foreign, m_impl, m_isLinkableCached , 以及 MemberDefImpl::IMPL::related.

◆ makeImplementationDetail()

void MemberDefImpl::makeImplementationDetail ( )
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5619 行定义.

5620 {
5621  m_impl->implOnly=TRUE;
5622 }

引用了 MemberDefImpl::IMPL::implOnly, m_impl , 以及 TRUE.

◆ makeRelated()

void MemberDefImpl::makeRelated ( )
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5536 行定义.

5537 {
5538  m_impl->related = Related;
5539  m_isLinkableCached = 0;
5540 }

引用了 m_impl, m_isLinkableCached, Related , 以及 MemberDefImpl::IMPL::related.

◆ memberDeclaration()

MemberDef * MemberDefImpl::memberDeclaration ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5440 行定义.

5441 {
5442  return m_impl->memDec;
5443 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::memDec.

◆ memberDefinition()

MemberDef * MemberDefImpl::memberDefinition ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5435 行定义.

5436 {
5437  return m_impl->memDef;
5438 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::memDef.

◆ memberType()

MemberType MemberDefImpl::memberType ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4863 行定义.

4864 {
4865  return m_impl->mtype;
4866 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::mtype.

被这些函数引用 codeSymbolType().

◆ memberTypeName()

QCString MemberDefImpl::memberTypeName ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp3828 行定义.

3829 {
3830  switch (m_impl->mtype)
3831  {
3832  case MemberType_Define: return "macro definition";
3833  case MemberType_Function: return "function";
3834  case MemberType_Variable: return "variable";
3835  case MemberType_Typedef: return "typedef";
3836  case MemberType_Enumeration: return "enumeration";
3837  case MemberType_EnumValue: return "enumvalue";
3838  case MemberType_Signal: return "signal";
3839  case MemberType_Slot: return "slot";
3840  case MemberType_Friend: return "friend";
3841  case MemberType_DCOP: return "dcop";
3842  case MemberType_Property: return "property";
3843  case MemberType_Event: return "event";
3844  case MemberType_Interface: return "interface";
3845  case MemberType_Service: return "service";
3846  case MemberType_Sequence: return "sequence";
3847  case MemberType_Dictionary: return "dictionary";
3848  default: return "unknown";
3849  }
3850 }

引用了 m_impl, MemberType_DCOP, MemberType_Define, MemberType_Dictionary, MemberType_Enumeration, MemberType_EnumValue, MemberType_Event, MemberType_Friend, MemberType_Function, MemberType_Interface, MemberType_Property, MemberType_Sequence, MemberType_Service, MemberType_Signal, MemberType_Slot, MemberType_Typedef, MemberType_Variable , 以及 MemberDefImpl::IMPL::mtype.

被这些函数引用 warnIfUndocumented().

◆ mergeMemberSpecifiers()

void MemberDefImpl::mergeMemberSpecifiers ( uint64  s)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5503 行定义.

5504 {
5505  m_impl->memSpec|=s;
5506 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::memSpec.

◆ moveArgumentList()

void MemberDefImpl::moveArgumentList ( std::unique_ptr< ArgumentList al)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp4612 行定义.

4613 {
4614  m_impl->defArgList = *al;
4615 }

引用了 MemberDefImpl::IMPL::defArgList , 以及 m_impl.

◆ moveDeclArgumentList()

void MemberDefImpl::moveDeclArgumentList ( std::unique_ptr< ArgumentList al)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp4617 行定义.

4618 {
4619  m_impl->declArgList = *al;
4620 }

引用了 MemberDefImpl::IMPL::declArgList , 以及 m_impl.

◆ moveTo()

void MemberDefImpl::moveTo ( Definition scope)
virtual

◆ numberOfFlowKeyWords()

int MemberDefImpl::numberOfFlowKeyWords ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5774 行定义.

5775 {
5776  return m_impl->numberOfFlowKW;
5777 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::numberOfFlowKW.

◆ objCMethodName()

QCString MemberDefImpl::objCMethodName ( bool  localLink,
bool  showStatic 
) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4741 行定义.

4742 {
4743  QCString qm;
4744  if (showStatic)
4745  {
4746  if (isStatic()) qm="+ "; else qm="- ";
4747  }
4748  qm+=name();
4749  if (!localLink) // link to method of same class
4750  {
4751  qm+=" (";
4752  qm+=getClassDef()->name();
4753  qm+=")";
4754  }
4755  return qm;
4756 }

引用了 getClassDef(), isStatic(), Definition::name() , 以及 DefinitionMixin< MemberDefMutable >::name().

◆ operator=()

MemberDefImpl& MemberDefImpl::operator= ( const MemberDefImpl )
private

◆ protection()

Protection MemberDefImpl::protection ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4858 行定义.

4859 {
4860  return m_impl->prot;
4861 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::prot.

被这些函数引用 getLabels(), hasDetailedDescription() , 以及 isBriefSectionVisible().

◆ qualifiedName()

QCString MemberDefImpl::qualifiedName ( ) const
virtual

Returns the fully qualified name of this definition

实现了 MemberDef.

在文件 memberdef.cpp4706 行定义.

4707 {
4708  if (isObjCMethod())
4709  {
4710  QCString qm;
4711  if (isStatic()) qm="+"; else qm="-";
4712  qm+="[";
4713  qm+=getClassDef()->name()+" ";
4714  qm+=name();
4715  qm+="]";
4716  return qm;
4717  }
4718  else if (m_impl->enumScope && m_impl->enumScope->isStrong())
4719  {
4720  return m_impl->enumScope->qualifiedName()+
4722  localName();
4723  }
4724  else
4725  {
4727  }
4728 }

引用了 MemberDefImpl::IMPL::enumScope, getClassDef(), DefinitionMixin< MemberDefMutable >::getLanguage(), getLanguageSpecificSeparator(), isObjCMethod(), isStatic(), MemberDef::isStrong(), DefinitionMixin< MemberDefMutable >::localName(), m_impl, Definition::name(), DefinitionMixin< MemberDefMutable >::name(), MemberDef::qualifiedName() , 以及 DefinitionMixin< Base >::qualifiedName().

被这些函数引用 _writeCallerGraph(), _writeCallGraph(), addListReference(), detectUndocumentedParams() , 以及 warnIfUndocumentedParams().

◆ reimplementedBy()

const MemberVector & MemberDefImpl::reimplementedBy ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp1477 行定义.

1478 {
1479  return m_impl->redefinedBy;
1480 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::redefinedBy.

被这些函数引用 _countReimplementedBy() , 以及 _writeReimplementedBy().

◆ reimplements()

const MemberDef * MemberDefImpl::reimplements ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp1472 行定义.

1473 {
1474  return m_impl->redefines;
1475 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::redefines.

被这些函数引用 _isReimplements(), _writeReimplements() , 以及 virtualness().

◆ relatedAlso()

ClassDef * MemberDefImpl::relatedAlso ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5210 行定义.

5211 {
5212  return m_impl->relatedAlso;
5213 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::relatedAlso.

被这些函数引用 MemberDefImpl::IMPL::init().

◆ requiresClause()

QCString MemberDefImpl::requiresClause ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5705 行定义.

5706 {
5707  return m_impl->requiresClause;
5708 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::requiresClause.

◆ resolveAlias() [1/2]

virtual MemberDef* MemberDefImpl::resolveAlias ( )
inlinevirtual

实现了 MemberDef.

在文件 memberdef.cpp75 行定义.

◆ resolveAlias() [2/2]

virtual const MemberDef* MemberDefImpl::resolveAlias ( ) const
inlinevirtual

实现了 MemberDef.

在文件 memberdef.cpp76 行定义.

◆ resolveUnnamedParameters()

void MemberDefImpl::resolveUnnamedParameters ( const MemberDef md)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5280 行定义.

5281 {
5282  ArgumentList &decAl = m_impl->declArgList;
5283  ArgumentList &defAl = m_impl->defArgList;
5284  const ArgumentList &decAlSrc = md->declArgumentList();
5285  const ArgumentList &defAlSrc = md->argumentList();
5286  auto decSrc = decAlSrc.begin(), defSrc = defAlSrc.begin();
5287  for (auto decIt = decAl.begin(), defIt = defAl.begin();
5288  decIt != decAl.end() && defIt != defAl.end() && decSrc != decAlSrc.end() && defSrc != defAlSrc.end();
5289  ++decIt, ++defIt, ++decSrc, ++defSrc++)
5290  {
5291  Argument &decA = *decIt;
5292  Argument &defA = *defIt;
5293  const Argument &decAS = *decSrc;
5294  const Argument &defAS = *defSrc;
5295  if (decA.name.isEmpty())
5296  {
5297  if (!defA.name.isEmpty())
5298  {
5299  decA.name = defA.name;
5300  }
5301  else if (!decAS.name.isEmpty())
5302  {
5303  decA.name = decAS.name;
5304  }
5305  else if (!defAS.name.isEmpty())
5306  {
5307  decA.name = defAS.name;
5308  }
5309  }
5310  if (defA.name.isEmpty())
5311  {
5312  if (!decA.name.isEmpty())
5313  {
5314  defA.name = decA.name;
5315  }
5316  else if (!decAS.name.isEmpty())
5317  {
5318  defA.name = decAS.name;
5319  }
5320  else if (!defAS.name.isEmpty())
5321  {
5322  defA.name = defAS.name;
5323  }
5324  }
5325  }
5326 }

引用了 MemberDef::argumentList(), ArgumentList::begin(), MemberDefImpl::IMPL::declArgList, MemberDef::declArgumentList(), MemberDefImpl::IMPL::defArgList, ArgumentList::end(), QCString::isEmpty(), m_impl , 以及 Argument::name.

◆ setAccessorType()

void MemberDefImpl::setAccessorType ( ClassDef cd,
const QCString t 
)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp4632 行定义.

4633 {
4634  m_impl->accessorClass = cd;
4635  m_impl->accessorType = t;
4636 }

引用了 MemberDefImpl::IMPL::accessorClass, MemberDefImpl::IMPL::accessorType , 以及 m_impl.

◆ setAnchor()

void MemberDefImpl::setAnchor ( )
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp4090 行定义.

4091 {
4092  QCString memAnchor = name();
4093  if (!m_impl->args.isEmpty()) memAnchor+=m_impl->args;
4094 
4095  memAnchor.prepend(definition()); // actually the method name is now included
4096  // twice, which is silly, but we keep it this way for backward
4097  // compatibility.
4098 
4099  // include number of template arguments as well,
4100  // to distinguish between two template
4101  // specializations that only differ in the template parameters.
4102  if (m_impl->tArgList.hasParameters())
4103  {
4104  char buf[20];
4105  qsnprintf(buf,20,"%d:",(int)m_impl->tArgList.size());
4106  buf[19]='\0';
4107  memAnchor.prepend(buf);
4108  }
4109  if (!m_impl->requiresClause.isEmpty())
4110  {
4111  memAnchor+=" "+m_impl->requiresClause;
4112  }
4113 
4114  // convert to md5 hash
4115  uchar md5_sig[16];
4116  char sigStr[33];
4117  MD5Buffer((const unsigned char *)memAnchor.data(),memAnchor.length(),md5_sig);
4118  MD5SigToString(md5_sig,sigStr);
4119  m_impl->anc = QCString("a")+sigStr;
4120 }

引用了 MemberDefImpl::IMPL::anc, MemberDefImpl::IMPL::args, QCString::data(), definition(), ArgumentList::hasParameters(), QCString::isEmpty(), QCString::length(), m_impl, DefinitionMixin< MemberDefMutable >::name(), QCString::prepend(), qsnprintf, MemberDefImpl::IMPL::requiresClause, ArgumentList::size() , 以及 MemberDefImpl::IMPL::tArgList.

◆ setAnonymousEnumType()

void MemberDefImpl::setAnonymousEnumType ( const MemberDef md)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5575 行定义.

5576 {
5577  m_impl->annEnumType = md;
5578 }

引用了 MemberDefImpl::IMPL::annEnumType , 以及 m_impl.

◆ setAnonymousUsed()

void MemberDefImpl::setAnonymousUsed ( ) const
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5358 行定义.

5359 {
5360  m_impl->annUsed = TRUE;
5361 }

引用了 MemberDefImpl::IMPL::annUsed, m_impl , 以及 TRUE.

被这些函数引用 writeDeclaration().

◆ setArgsString()

void MemberDefImpl::setArgsString ( const QCString as)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5553 行定义.

5554 {
5555  m_impl->args = as;
5556 }

引用了 MemberDefImpl::IMPL::args , 以及 m_impl.

◆ setBitfields()

void MemberDefImpl::setBitfields ( const QCString s)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5508 行定义.

5509 {
5511 }

引用了 MemberDefImpl::IMPL::bitfields, m_impl , 以及 QCString::simplifyWhiteSpace().

◆ setBriefDescription()

void MemberDefImpl::setBriefDescription ( const QCString b,
const QCString briefFile,
int  briefLine 
)
virtual

Sets the brief description of this definition to b. A dot is added to the sentence if not available.

重载 DefinitionMixin< MemberDefMutable > .

在文件 memberdef.cpp1722 行定义.

引用了 DefinitionMixin< MemberDefMutable >::briefFile(), DefinitionMixin< MemberDefMutable >::briefLine(), m_isLinkableCached , 以及 DefinitionMixin< Base >::setBriefDescription().

◆ setCategory()

void MemberDefImpl::setCategory ( ClassDef def)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5675 行定义.

5676 {
5677  m_impl->category = def;
5678 }

引用了 MemberDefImpl::IMPL::category , 以及 m_impl.

◆ setCategoryRelation()

void MemberDefImpl::setCategoryRelation ( const MemberDef md)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5685 行定义.

5686 {
5687  m_impl->categoryRelation = md;
5688 }

引用了 MemberDefImpl::IMPL::categoryRelation , 以及 m_impl.

◆ setDeclFile()

void MemberDefImpl::setDeclFile ( const QCString df,
int  line,
int  column 
)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5607 行定义.

5608 {
5609  m_impl->declFileName = df;
5610  m_impl->declLine = line;
5611  m_impl->declColumn = column;
5612 }

引用了 MemberDefImpl::IMPL::declColumn, MemberDefImpl::IMPL::declFileName, MemberDefImpl::IMPL::declLine , 以及 m_impl.

被这些函数引用 setExplicitExternal() , 以及 setPrototype().

◆ setDefinition()

void MemberDefImpl::setDefinition ( const QCString d)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5479 行定义.

5480 {
5481  m_impl->def=d;
5482 }

引用了 MemberDefImpl::IMPL::def , 以及 m_impl.

◆ setDefinitionTemplateParameterLists()

void MemberDefImpl::setDefinitionTemplateParameterLists ( const ArgumentLists lists)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp1764 行定义.

1765 {
1766  m_impl->defTmpArgLists = lists;
1767 }

引用了 MemberDefImpl::IMPL::defTmpArgLists , 以及 m_impl.

被这些函数引用 deepCopy().

◆ setDocsForDefinition()

void MemberDefImpl::setDocsForDefinition ( bool  b)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5645 行定义.

5646 {
5648 }

引用了 MemberDefImpl::IMPL::docsForDefinition , 以及 m_impl.

◆ setDocumentation()

void MemberDefImpl::setDocumentation ( const QCString d,
const QCString docFile,
int  docLine,
bool  stripWhiteSpace = TRUE 
)
virtual

◆ setDocumentedEnumValues()

void MemberDefImpl::setDocumentedEnumValues ( bool  value)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5570 行定义.

5571 {
5572  m_impl->docEnumValues=value;
5573 }

引用了 MemberDefImpl::IMPL::docEnumValues , 以及 m_impl.

◆ setEnumBaseType()

void MemberDefImpl::setEnumBaseType ( const QCString type)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5690 行定义.

5691 {
5692  m_impl->enumBaseType = type;
5693 }

引用了 MemberDefImpl::IMPL::enumBaseType , 以及 m_impl.

◆ setEnumClassScope()

void MemberDefImpl::setEnumClassScope ( const ClassDef cd)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5563 行定义.

5564 {
5565  m_impl->classDef = cd;
5566  m_isLinkableCached = 0;
5568 }

引用了 MemberDefImpl::IMPL::classDef, m_impl, m_isConstructorCached , 以及 m_isLinkableCached.

◆ setEnumScope()

◆ setExplicitExternal()

void MemberDefImpl::setExplicitExternal ( bool  b,
const QCString df,
int  line,
int  column 
)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5593 行定义.

5594 {
5595  m_impl->explExt=b;
5596  if (b)
5597  {
5598  setDeclFile(df,line,column);
5599  }
5600  else
5601  {
5602  setDefFile(df,line,column);
5603  }
5604 }

引用了 MemberDefImpl::IMPL::explExt, m_impl, setDeclFile() , 以及 DefinitionMixin< MemberDefMutable >::setDefFile().

◆ setFileDef()

void MemberDefImpl::setFileDef ( const FileDef fd)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5484 行定义.

5485 {
5486  m_impl->fileDef=fd;
5487  m_isLinkableCached = 0;
5490 }

引用了 MemberDefImpl::IMPL::fileDef, m_impl, m_isConstructorCached, m_isDestructorCached , 以及 m_isLinkableCached.

◆ setFromAnonymousMember()

void MemberDefImpl::setFromAnonymousMember ( MemberDef m)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5629 行定义.

5630 {
5631  m_impl->annMemb=m;
5632 }

引用了 MemberDefImpl::IMPL::annMemb , 以及 m_impl.

◆ setFromAnonymousScope()

void MemberDefImpl::setFromAnonymousScope ( bool  b) const
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5624 行定义.

5625 {
5626  m_impl->annScope=b;
5627 }

引用了 MemberDefImpl::IMPL::annScope , 以及 m_impl.

◆ setGroupAlias()

void MemberDefImpl::setGroupAlias ( const MemberDef md)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5650 行定义.

5651 {
5652  m_impl->groupAlias = md;
5653 }

引用了 MemberDefImpl::IMPL::groupAlias , 以及 m_impl.

◆ setGroupDef()

void MemberDefImpl::setGroupDef ( const GroupDef gd,
Grouping::GroupPri_t  pri,
const QCString fileName,
int  startLine,
bool  hasDocs,
MemberDef member = 0 
)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp4122 行定义.

4125 {
4126  //printf("%s MemberDefImpl::setGroupDef(%s)\n",qPrint(name()),qPrint(gd->name()));
4127  m_impl->group=gd;
4128  m_impl->grouppri=pri;
4129  m_impl->groupFileName=fileName;
4130  m_impl->groupStartLine=startLine;
4131  m_impl->groupHasDocs=hasDocs;
4132  m_impl->groupMember=member;
4133  m_isLinkableCached = 0;
4134 }

引用了 MemberDefImpl::IMPL::group, MemberDefImpl::IMPL::groupFileName, MemberDefImpl::IMPL::groupHasDocs, MemberDefImpl::IMPL::groupMember, MemberDefImpl::IMPL::grouppri, MemberDefImpl::IMPL::groupStartLine, m_impl , 以及 m_isLinkableCached.

◆ setHidden()

void MemberDefImpl::setHidden ( bool  b)
virtual

重载 DefinitionMixin< MemberDefMutable > .

在文件 memberdef.cpp1734 行定义.

1735 {
1737  m_isLinkableCached = 0;
1738 }

引用了 m_isLinkableCached , 以及 DefinitionMixin< Base >::setHidden().

◆ setInbodyDocumentation()

void MemberDefImpl::setInbodyDocumentation ( const QCString d,
const QCString docFile,
int  docLine 
)
virtual

Set the documentation that was found inside the body of an item. If there was already some documentation set, the new documentation will be appended.

重载 DefinitionMixin< MemberDefMutable > .

在文件 memberdef.cpp1728 行定义.

引用了 DefinitionMixin< MemberDefMutable >::inbodyFile(), DefinitionMixin< MemberDefMutable >::inbodyLine(), m_isLinkableCached , 以及 DefinitionMixin< Base >::setInbodyDocumentation().

◆ setInheritsDocsFrom()

void MemberDefImpl::setInheritsDocsFrom ( const MemberDef md)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5548 行定义.

5549 {
5550  m_impl->docProvider = md;
5551 }

引用了 MemberDefImpl::IMPL::docProvider , 以及 m_impl.

◆ setInitializer()

void MemberDefImpl::setInitializer ( const QCString i)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp4226 行定义.

4227 {
4229  int l=m_impl->initializer.length();
4230  int p=l-1;
4231  while (p>=0 && isspace((uchar)m_impl->initializer.at(p))) p--;
4234  //printf("%s::setInitializer(%s)\n",qPrint(name()),qPrint(m_impl->initializer));
4235 }

引用了 QCString::at(), QCString::contains(), initializer(), MemberDefImpl::IMPL::initializer, MemberDefImpl::IMPL::initLines, reg::isspace(), QCString::left(), QCString::length() , 以及 m_impl.

◆ setMaxInitLines()

void MemberDefImpl::setMaxInitLines ( int  lines)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5513 行定义.

5514 {
5515  if (lines!=-1)
5516  {
5517  m_impl->userInitLines=lines;
5518  }
5519 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::userInitLines.

◆ setMemberClass()

void MemberDefImpl::setMemberClass ( const ClassDef cd)
virtual

◆ setMemberDeclaration()

void MemberDefImpl::setMemberDeclaration ( MemberDef md)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5665 行定义.

5666 {
5667  m_impl->memDec=md;
5668 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::memDec.

◆ setMemberDefinition()

void MemberDefImpl::setMemberDefinition ( MemberDef md)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5660 行定义.

5661 {
5662  m_impl->memDef=md;
5663 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::memDef.

◆ setMemberGroup()

void MemberDefImpl::setMemberGroup ( MemberGroup grp)
virtual

实现了 MemberDef.

在文件 memberdef.cpp4071 行定义.

4072 {
4073  m_impl->memberGroup = grp;
4074 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::memberGroup.

◆ setMemberGroupId()

void MemberDefImpl::setMemberGroupId ( int  id)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5614 行定义.

5615 {
5616  m_impl->grpId=id;
5617 }

引用了 MemberDefImpl::IMPL::grpId, DefinitionMixin< MemberDefMutable >::id() , 以及 m_impl.

◆ setMemberSpecifiers()

void MemberDefImpl::setMemberSpecifiers ( uint64  s)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5498 行定义.

5499 {
5500  m_impl->memSpec=s;
5501 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::memSpec.

◆ setMemberType()

void MemberDefImpl::setMemberType ( MemberType  t)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5473 行定义.

5474 {
5475  m_impl->mtype=t;
5476  m_isLinkableCached = 0;
5477 }

引用了 m_impl, m_isLinkableCached , 以及 MemberDefImpl::IMPL::mtype.

◆ setNamespace()

void MemberDefImpl::setNamespace ( const NamespaceDef nd)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp4159 行定义.

4160 {
4161  m_impl->nspace=nd;
4162  setOuterScope(const_cast<NamespaceDef*>(nd));
4163 }

引用了 m_impl, MemberDefImpl::IMPL::nspace , 以及 DefinitionMixin< MemberDefMutable >::setOuterScope().

◆ setProtection()

void MemberDefImpl::setProtection ( Protection  p)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5492 行定义.

5493 {
5494  m_impl->prot=p;
5495  m_isLinkableCached = 0;
5496 }

引用了 m_impl, m_isLinkableCached , 以及 MemberDefImpl::IMPL::prot.

◆ setPrototype()

void MemberDefImpl::setPrototype ( bool  p,
const QCString df,
int  line,
int  column 
)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5580 行定义.

5581 {
5582  m_impl->proto=p;
5583  if (p)
5584  {
5585  setDeclFile(df,line,column);
5586  }
5587  else
5588  {
5589  setDefFile(df,line,column);
5590  }
5591 }

引用了 m_impl, MemberDefImpl::IMPL::proto, setDeclFile() , 以及 DefinitionMixin< MemberDefMutable >::setDefFile().

◆ setReadAccessor()

void MemberDefImpl::setReadAccessor ( const QCString r)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5521 行定义.

5522 {
5523  m_impl->read=r;
5524 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::read.

◆ setReimplements()

void MemberDefImpl::setReimplements ( const MemberDef md)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp1451 行定义.

1452 {
1453  m_impl->redefines = md;
1454 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::redefines.

◆ setRelatedAlso()

void MemberDefImpl::setRelatedAlso ( ClassDef cd)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5558 行定义.

5559 {
5560  m_impl->relatedAlso=cd;
5561 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::relatedAlso.

◆ setRequiresClause()

void MemberDefImpl::setRequiresClause ( const QCString req)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5700 行定义.

5701 {
5702  m_impl->requiresClause = req;
5703 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::requiresClause.

◆ setSectionList()

void MemberDefImpl::setSectionList ( const Definition container,
const MemberList sl 
)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp4299 行定义.

4300 {
4301  //printf("MemberDefImpl::setSectionList(%s,%p) name=%s\n",qPrint(d->name()),sl,qPrint(name()));
4302  m_impl->sectionMap.insert(std::make_pair(container,sl));
4303 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::sectionMap.

◆ setTagInfo()

void MemberDefImpl::setTagInfo ( const TagInfo i)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp4730 行定义.

4731 {
4732  if (ti)
4733  {
4734  //printf("%s: Setting tag name=%s anchor=%s\n",qPrint(name()),qPrint(ti->tagName),qPrint(ti->anchor));
4735  m_impl->anc=ti->anchor;
4736  setReference(ti->tagName);
4737  m_impl->explicitOutputFileBase = stripExtension(ti->fileName);
4738  }
4739 }

引用了 MemberDefImpl::IMPL::anc, TagInfo::anchor, MemberDefImpl::IMPL::explicitOutputFileBase, TagInfo::fileName, m_impl, DefinitionMixin< MemberDefMutable >::setReference(), stripExtension() , 以及 TagInfo::tagName.

◆ setTemplateMaster()

void MemberDefImpl::setTemplateMaster ( const MemberDef mt)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5639 行定义.

5640 {
5641  m_impl->templateMaster=mt;
5642  m_isLinkableCached = 0;
5643 }

引用了 m_impl, m_isLinkableCached , 以及 MemberDefImpl::IMPL::templateMaster.

◆ setTemplateSpecialization()

void MemberDefImpl::setTemplateSpecialization ( bool  b)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5531 行定义.

5532 {
5533  m_impl->tspec=b;
5534 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::tspec.

◆ setType()

void MemberDefImpl::setType ( const QCString t)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp4627 行定义.

4628 {
4629  m_impl->type = t;
4630 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::type.

◆ setTypeConstraints()

void MemberDefImpl::setTypeConstraints ( const ArgumentList al)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp4622 行定义.

4623 {
4624  m_impl->typeConstraints = al;
4625 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::typeConstraints.

◆ setWriteAccessor()

void MemberDefImpl::setWriteAccessor ( const QCString w)
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp5526 行定义.

5527 {
5528  m_impl->write=w;
5529 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::write.

◆ showInCallGraph()

bool MemberDefImpl::showInCallGraph ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5201 行定义.

5202 {
5203  return isFunction() ||
5204  isSlot() ||
5205  isConstructor() ||
5206  isDestructor() ||
5207  isObjCMethod();
5208 }

引用了 isConstructor(), isDestructor(), isFunction(), isObjCMethod() , 以及 isSlot().

◆ templateArguments()

const ArgumentList & MemberDefImpl::templateArguments ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5328 行定义.

5329 {
5330  return m_impl->tArgList;
5331 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::tArgList.

◆ templateMaster()

const MemberDef * MemberDefImpl::templateMaster ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5409 行定义.

5410 {
5411  return m_impl->templateMaster;
5412 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::templateMaster.

被这些函数引用 _computeLinkableInProject(), getOutputFileBase(), getReference() , 以及 MemberDefImpl::IMPL::init().

◆ typeConstraints()

const ArgumentList & MemberDefImpl::typeConstraints ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp5976 行定义.

5977 {
5978  return m_impl->typeConstraints;
5979 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::typeConstraints.

◆ typeString()

QCString MemberDefImpl::typeString ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4773 行定义.

4774 {
4775  return m_impl->type;
4776 }

引用了 m_impl , 以及 MemberDefImpl::IMPL::type.

被这些函数引用 detectUndocumentedParams(), warnIfUndocumentedParams() , 以及 writeTagFile().

◆ virtualness()

Specifier MemberDefImpl::virtualness ( int  count = 0) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4305 行定义.

4306 {
4307  if (count>25)
4308  {
4310  "Internal inconsistency: recursion detected in overload relation for member %s!"
4311  ,qPrint(name())
4312  );
4313  return Normal;
4314  }
4315  Specifier v = m_impl->virt;
4316  const MemberDef *rmd = reimplements();
4317  while (rmd && v==Normal)
4318  {
4319  v = rmd->virtualness(count+1)==Normal ? Normal : Virtual;
4320  rmd = rmd->reimplements();
4321  }
4322  return v;
4323 }

引用了 DefinitionMixin< MemberDefMutable >::getDefFileName(), DefinitionMixin< MemberDefMutable >::getDefLine(), m_impl, DefinitionMixin< MemberDefMutable >::name(), Normal, qPrint(), reimplements(), MemberDef::reimplements(), MemberDefImpl::IMPL::virt, Virtual, MemberDef::virtualness() , 以及 warn().

被这些函数引用 getLabels().

◆ visibleInIndex()

bool MemberDefImpl::visibleInIndex ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp3896 行定义.

3897 {
3898  bool hideUndocMembers = Config_getBool(HIDE_UNDOC_MEMBERS);
3899  bool extractStatic = Config_getBool(EXTRACT_STATIC);
3900  return (!isAnonymous() &&
3901  (!hideUndocMembers || hasDocumentation()) &&
3902  (!isStatic() || extractStatic) &&
3903  isLinkable()
3904  );
3905 }

引用了 Config_getBool, hasDocumentation(), DefinitionMixin< MemberDefMutable >::isAnonymous(), isLinkable() , 以及 isStatic().

◆ visibleMemberGroup()

bool MemberDefImpl::visibleMemberGroup ( bool  hideNoHeader) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4076 行定义.

4077 {
4078  return m_impl->memberGroup!=0 &&
4079  (!hideNoHeader || m_impl->memberGroup->header()!="[NOHEADER]");
4080 }

引用了 MemberGroup::header(), m_impl , 以及 MemberDefImpl::IMPL::memberGroup.

◆ warnIfUndocumented()

void MemberDefImpl::warnIfUndocumented ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp3852 行定义.

3853 {
3854  /*
3855  * Removed bug_303020:
3856  * if (m_impl->memberGroup) return;
3857  */
3858  const ClassDef *cd = getClassDef();
3859  const NamespaceDef *nd = getNamespaceDef();
3860  const FileDef *fd = getFileDef();
3861  const GroupDef *gd = getGroupDef();
3862  const Definition *d=0;
3863  QCString t;
3864  if (cd)
3865  t=cd->compoundTypeString(), d=cd;
3866  else if (nd)
3867  {
3868  d=nd;
3869  t=nd->compoundTypeString();
3870  }
3871  else if (gd)
3872  t="group", d=gd;
3873  else
3874  t="file", d=fd;
3875  static bool extractAll = Config_getBool(EXTRACT_ALL);
3876 
3877  //printf("%s:warnIfUndoc: hasUserDocs=%d isFriendClass=%d protection=%d isRef=%d isDel=%d\n",
3878  // qPrint(name()),
3879  // hasUserDocumentation(),isFriendClass(),protectionLevelVisible(m_impl->prot),isReference(),isDeleted());
3880  if ((!hasUserDocumentation() && !extractAll) &&
3881  !isFriendClass() &&
3882  name().find('@')==-1 && d && d->name().find('@')==-1 &&
3884  !isReference() && !isDeleted()
3885  )
3886  {
3887  warn_undoc(getDefFileName(),getDefLine(),"Member %s%s (%s) of %s %s is not documented.",
3889  }
3890  else if (!hasDetailedDescription())
3891  {
3893  }
3894 }

引用了 argsString(), NamespaceDef::compoundTypeString(), ClassDef::compoundTypeString(), Config_getBool, QCString::find(), getClassDef(), DefinitionMixin< MemberDefMutable >::getDefFileName(), DefinitionMixin< MemberDefMutable >::getDefLine(), getFileDef(), getGroupDef(), getNamespaceDef(), hasDetailedDescription(), DefinitionMixin< MemberDefMutable >::hasUserDocumentation(), isDeleted(), isFriendClass(), isReference(), m_impl, memberTypeName(), Definition::name(), DefinitionMixin< MemberDefMutable >::name(), MemberDefImpl::IMPL::prot, protectionLevelVisible(), qPrint(), warn_undoc() , 以及 warnIfUndocumentedParams().

被这些函数引用 writeDeclaration().

◆ warnIfUndocumentedParams()

void MemberDefImpl::warnIfUndocumentedParams ( ) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4021 行定义.

4022 {
4023  if (!Config_getBool(EXTRACT_ALL) &&
4024  Config_getBool(WARN_IF_UNDOCUMENTED) &&
4025  Config_getBool(WARN_NO_PARAMDOC) &&
4026  isFunction() &&
4027  !isDeleted() &&
4028  !isReference() &&
4030  {
4031  QCString returnType = typeString();
4033  {
4035  "parameters of member %s are not (all) documented",
4036  qPrint(qualifiedName()));
4037  }
4039  hasDocumentation() && !returnType.isEmpty())
4040  {
4042  "return type of member %s is not documented",
4043  qPrint(qualifiedName()));
4044  }
4045  }
4046 }

引用了 Config_getBool, DefinitionMixin< MemberDefMutable >::getDefFileName(), DefinitionMixin< MemberDefMutable >::getDefLine(), hasDocumentation(), MemberDefImpl::IMPL::hasDocumentedParams, MemberDefImpl::IMPL::hasDocumentedReturnType, isDeleted(), QCString::isEmpty(), isFunction(), isReference(), m_impl, qPrint(), qualifiedName(), Doxygen::suppressDocWarnings, typeString() , 以及 warn_doc_error().

被这些函数引用 warnIfUndocumented() , 以及 writeDocumentation().

◆ writeDeclaration()

void MemberDefImpl::writeDeclaration ( OutputList ol,
const ClassDef cd,
const NamespaceDef nd,
const FileDef fd,
const GroupDef gd,
bool  inGroup,
int  indentLevel,
const ClassDef inheritFrom = 0,
const QCString inheritId = QCString() 
) const
virtual

init.isEmpty() && initLines==0 && // one line initializer

实现了 MemberDef.

在文件 memberdef.cpp2063 行定义.

2066 {
2067  //printf("> %s MemberDefImpl::writeDeclaration() inGroup=%d\n",qPrint(qualifiedName()),inGroup);
2068 
2069  // hide enum value, since they appear already as part of the enum, unless they
2070  // are explicitly grouped.
2071  if (!inGroup && m_impl->mtype==MemberType_EnumValue) return;
2072 
2073 
2074  const Definition *d=0;
2075  ASSERT (cd!=0 || nd!=0 || fd!=0 || gd!=0); // member should belong to something
2076  if (cd) d=cd; else if (nd) d=nd; else if (fd) d=fd; else d=gd;
2077  if (d==gd) // see bug 753608
2078  {
2079  if (getClassDef()) d = getClassDef();
2080  else if (getNamespaceDef()) d = getNamespaceDef();
2081  else if (getFileDef()) d = getFileDef();
2082  }
2083 
2084  QCString cname = d->name();
2085  QCString cdname = d->displayName();
2086  QCString cfname = getOutputFileBase();
2087 
2088  // search for the last anonymous scope in the member type
2090 
2092 
2093  // start a new member declaration
2094  bool isAnonType = annoClassDef || m_impl->annMemb || m_impl->annEnumType;
2095  ol.startMemberItem(anchor(),
2096  isAnonType ? 1 : !m_impl->tArgList.empty() ? 3 : 0,
2097  inheritId
2098  );
2099 
2100  // If there is no detailed description we need to write the anchor here.
2101  bool detailsVisible = hasDetailedDescription();
2102  bool writeAnchor = (inGroup || getGroupDef()==0) && // only write anchors for member that have no details and are
2103  !detailsVisible && !m_impl->annMemb; // rendered inside the group page or are not grouped at all
2104  if (writeAnchor)
2105  {
2106  QCString doxyArgs=argsString();
2107  QCString doxyName=name();
2108  if (!cname.isEmpty())
2109  {
2110  doxyName.prepend(cdname+getLanguageSpecificSeparator(getLanguage()));
2111  }
2112  ol.startDoxyAnchor(cfname,cname,anchor(),doxyName,doxyArgs);
2113  }
2114 
2115  if (!detailsVisible)
2116  {
2117  ol.pushGeneratorState();
2121  ol.docify("\n");
2122  ol.popGeneratorState();
2123  }
2124 
2125  if (annoClassDef || m_impl->annMemb)
2126  {
2127  int j;
2128  for (j=0;j<indentLevel;j++)
2129  {
2130  ol.writeNonBreakableSpace(3);
2131  }
2132  }
2133 
2134  // *** write template lists
2136  {
2137  if (!isAnonType) ol.startMemberTemplateParams();
2139  if (!isAnonType) ol.endMemberTemplateParams(anchor(),inheritId);
2140  }
2141 
2142 
2143  // *** write type
2144  QCString ltype(m_impl->type);
2145  if (isTypedef() && getLanguage() != SrcLangExt_Slice)
2146  {
2147  ltype.prepend("typedef ");
2148  }
2149  if (isTypeAlias())
2150  {
2151  ltype="using";
2152  }
2153  // strip 'friend' keyword from ltype
2154  ltype.stripPrefix("friend ");
2155  static const reg::Ex r(R"(@\d+)");
2156  reg::Match match;
2157  std::string stype = ltype.str();
2158  bool endAnonScopeNeeded=FALSE;
2159  if (reg::search(stype,match,r)) // member has an anonymous type
2160  {
2161  int i = (int)match.position();
2162  int l = (int)match.length();
2163  //printf("annoClassDef=%p annMemb=%p scopeName='%s' anonymous='%s'\n",
2164  // annoClassDef,annMemb,qPrint(cname),qPrint(ltype.mid(i,l)));
2165 
2166  if (annoClassDef) // type is an anonymous compound
2167  {
2168  int ir=i+l;
2169  //printf("<<<<<<<<<<<<<<\n");
2170  ol.startAnonTypeScope(indentLevel);
2171  annoClassDef->writeDeclaration(ol,m_impl->annMemb,inGroup,indentLevel+1,inheritedFrom,inheritId);
2172  //printf(">>>>>>>>>>>>>> startMemberItem(2)\n");
2173  ol.startMemberItem(anchor(),2,inheritId);
2174  int j;
2175  for (j=0;j< indentLevel;j++)
2176  {
2177  ol.writeNonBreakableSpace(3);
2178  }
2179  QCString varName=ltype.right(ltype.length()-ir).stripWhiteSpace();
2180  //printf(">>>>>> ltype='%s' varName='%s'\n",qPrint(ltype),qPrint(varName));
2181  ol.docify("}");
2182  if (varName.isEmpty() && isAnonymous())
2183  {
2184  ol.docify(";");
2185  }
2186  else if (!varName.isEmpty() && (varName.at(0)=='*' || varName.at(0)=='&'))
2187  {
2188  ol.docify(" ");
2189  ol.docify(varName);
2190  }
2191  endAnonScopeNeeded=TRUE;
2192  }
2193  else
2194  {
2195  if (getAnonymousEnumType()) // type is an anonymous enum
2196  {
2197  linkifyText(TextGeneratorOLImpl(ol), // out
2198  d, // scope
2199  getBodyDef(), // fileScope
2200  this, // self
2201  ltype.left(i), // text
2202  FALSE // autoBreak
2203  );
2204  getAnonymousEnumType()->writeEnumDeclaration(ol,cd,nd,fd,gd);
2205  //ol+=*getAnonymousEnumType()->enumDecl();
2206  linkifyText(TextGeneratorOLImpl(ol),d,getFileDef(),this,ltype.right(ltype.length()-i-l),TRUE);
2207  }
2208  else
2209  {
2210  ltype = ltype.left(i) + " { ... } " + removeAnonymousScopes(ltype.right(ltype.length()-i-l));
2211  linkifyText(TextGeneratorOLImpl(ol), // out
2212  d, // scope
2213  getBodyDef(), // fileScope
2214  this, // self
2215  ltype, // text
2216  FALSE // autoBreak
2217  );
2218  }
2219  }
2220  }
2221  else if (ltype=="@") // rename type from enum values
2222  {
2223  ltype="";
2224  }
2225  else
2226  {
2227  if (isObjCMethod())
2228  {
2229  ltype.prepend("(");
2230  ltype.append(")");
2231  }
2232  linkifyText(TextGeneratorOLImpl(ol), // out
2233  d, // scope
2234  getBodyDef(), // fileScope
2235  this, // self
2236  ltype, // text
2237  FALSE // autoBreak
2238  );
2239  }
2240  bool htmlOn = ol.isEnabled(OutputGenerator::Html);
2241  if (htmlOn && !ltype.isEmpty())
2242  {
2244  }
2245  if (!ltype.isEmpty()) ol.docify(" ");
2246  if (htmlOn)
2247  {
2249  }
2250 
2251  if (m_impl->annMemb)
2252  {
2253  ol.pushGeneratorState();
2255  ol.writeNonBreakableSpace(3);
2256  ol.popGeneratorState();
2257  }
2258  else
2259  {
2261  }
2262 
2263  // *** write name
2264  if (!isAnonymous()) // hide anonymous stuff
2265  {
2266  static bool extractPrivate = Config_getBool(EXTRACT_PRIVATE);
2267  static bool extractPrivateVirtual = Config_getBool(EXTRACT_PRIV_VIRTUAL);
2268  static bool extractStatic = Config_getBool(EXTRACT_STATIC);
2270  //printf("Member name=`%s gd=%p md->groupDef=%p inGroup=%d isLinkable()=%d hasDocumentation=%d\n",qPrint(name()),gd,getGroupDef(),inGroup,isLinkable(),hasDocumentation());
2271  if (!name().isEmpty() && // name valid
2272  (hasDetailedDescription() || isReference()) && // has docs
2273  !(m_impl->prot==Private && !extractPrivate && (m_impl->virt==Normal || !extractPrivateVirtual) && m_impl->mtype!=MemberType_Friend) && // hidden due to protection
2274  !(isStatic() && getClassDef()==0 && !extractStatic) // hidden due to static-ness
2275  )
2276  {
2277  if (annMemb)
2278  {
2279  //printf("anchor=%s ann_anchor=%s\n",anchor(),annMemb->anchor());
2280  annMemb->writeLink(ol,
2281  annMemb->getClassDef(),
2282  annMemb->getNamespaceDef(),
2283  annMemb->getFileDef(),
2284  annMemb->getGroupDef());
2285  annMemb->setAnonymousUsed();
2286  setAnonymousUsed();
2287  }
2288  else
2289  {
2290  //printf("writeLink %s->%d\n",qPrint(name),hasDocumentation());
2291  const ClassDef *rcd = cd;
2292  if (isReference() && getClassDef()) rcd = getClassDef();
2293  writeLink(ol,rcd,nd,fd,gd);
2294  }
2295  }
2296  else if (isDocumentedFriendClass())
2297  // if the member is an undocumented friend declaration for some class,
2298  // then maybe we can link to the class
2299  {
2300  writeLink(ol,getClass(name()),0,0,0);
2301  }
2302  else
2303  // there is a brief member description and brief member
2304  // descriptions are enabled or there is no detailed description.
2305  {
2306  if (annMemb)
2307  {
2308  annMemb->setAnonymousUsed();
2309  setAnonymousUsed();
2310  }
2311  const ClassDef *rcd = cd;
2312  if (isReference() && getClassDef()) rcd = getClassDef();
2313  writeLink(ol,rcd,nd,fd,gd,TRUE);
2314  }
2315  }
2316 
2317  // *** write arguments
2318  if (!argsString().isEmpty() && !isObjCMethod())
2319  {
2320  if (!isDefine() && !isTypedef()) ol.writeString(" ");
2321  linkifyText(TextGeneratorOLImpl(ol), // out
2322  d, // scope
2323  getBodyDef(), // fileScope
2324  this, // self
2325  isDefine() ?
2326  substitute(argsString(),",",", ") :
2327  isTypedef() ?
2328  substitute(argsString(),")(",") (") :
2329  argsString(), // text
2330  m_impl->annMemb, // autoBreak
2331  TRUE, // external
2332  FALSE, // keepSpaces
2333  indentLevel
2334  );
2335  }
2336  // *** write exceptions
2337  if (!excpString().isEmpty())
2338  {
2339  ol.writeString(" ");
2340  ol.docify(excpString());
2341  }
2342 
2343  // *** write bitfields
2344  if (!m_impl->bitfields.isEmpty()) // add bitfields
2345  {
2347  }
2348  else if (hasOneLineInitializer()
2349  //!init.isEmpty() && initLines==0 && // one line initializer
2350  //((maxInitLines>0 && userInitLines==-1) || userInitLines>0) // enabled by default or explicitly
2351  ) // add initializer
2352  {
2353  if (!isDefine())
2354  {
2355  //ol.writeString(" = ");
2356  ol.writeString(" ");
2358  }
2359  else
2360  {
2361  ol.writeNonBreakableSpace(3);
2363  }
2364  }
2365  else if (isTypeAlias()) // using template alias
2366  {
2367  ol.writeString(" = ");
2369  }
2370 
2371 
2372  if ((isObjCMethod() || isObjCProperty()) && isImplementation())
2373  {
2374  ol.startTypewriter();
2375  ol.docify(" [implementation]");
2376  ol.endTypewriter();
2377  }
2378 
2379  bool extractPrivate = Config_getBool(EXTRACT_PRIVATE);
2380 
2381  if (isProperty() && (isSettable() || isGettable() ||
2384  {
2385  ol.writeLatexSpacing();
2386  ol.startTypewriter();
2387  ol.docify(" [");
2388  StringVector sl;
2389 
2390  if (isGettable()) sl.push_back("get");
2391  if (isProtectedGettable()) sl.push_back("protected get");
2392  if (isSettable()) sl.push_back("set");
2393  if (isProtectedSettable()) sl.push_back("protected set");
2394  if (extractPrivate)
2395  {
2396  if (isPrivateGettable()) sl.push_back("private get");
2397  if (isPrivateSettable()) sl.push_back("private set");
2398  }
2399  bool first=true;
2400  for (const auto &s : sl)
2401  {
2402  if (!first)
2403  {
2404  ol.docify(", ");
2405  }
2406  first=false;
2407  ol.docify(s.c_str());
2408  }
2409  ol.docify("]");
2410  ol.endTypewriter();
2411  }
2412 
2413  if (isEvent() && (isAddable() || isRemovable() || isRaisable()))
2414  {
2415  ol.writeLatexSpacing();
2416  ol.startTypewriter();
2417  ol.docify(" [");
2418  StringVector sl;
2419  if (isAddable()) sl.push_back("add");
2420  if (isRemovable()) sl.push_back("remove");
2421  if (isRaisable()) sl.push_back("raise");
2422  bool first=true;
2423  for (const auto &s : sl)
2424  {
2425  if (!first)
2426  {
2427  ol.docify(", ");
2428  }
2429  first=false;
2430  ol.docify(s.c_str());
2431  }
2432  ol.docify("]");
2433  ol.endTypewriter();
2434  }
2435 
2436  if (writeAnchor)
2437  {
2438  ol.endDoxyAnchor(cfname,anchor());
2439  }
2440 
2441  //printf("endMember %s annoClassDef=%p annEnumType=%p\n",
2442  // qPrint(name()),annoClassDef,annEnumType);
2443  ol.endMemberItem();
2444  if (endAnonScopeNeeded)
2445  {
2446  ol.endAnonTypeScope(indentLevel);
2447  }
2448 
2449  // write brief description
2450  if (!briefDescription().isEmpty() &&
2451  Config_getBool(BRIEF_MEMBER_DESC)
2452  )
2453  {
2454  std::unique_ptr<IDocParser> parser { createDocParser() };
2455  std::unique_ptr<DocRoot> rootNode { validatingParseDoc(*parser.get(),
2456  briefFile(),briefLine(),
2458  this,briefDescription(),TRUE,FALSE,
2459  QCString(),TRUE,FALSE,Config_getBool(MARKDOWN_SUPPORT)) };
2460 
2461  if (rootNode && !rootNode->isEmpty())
2462  {
2463  ol.startMemberDescription(anchor(),inheritId);
2464  ol.writeDoc(rootNode.get(),getOuterScope()?getOuterScope():d,this);
2465  if (detailsVisible) // add More.. link only when both brief and details are visible
2466  {
2467  ol.pushGeneratorState();
2469  ol.docify(" ");
2472  ol.endTextLink();
2473  ol.popGeneratorState();
2474  }
2475  // for RTF we need to add an extra empty paragraph
2476  ol.pushGeneratorState();
2478  ol.startParagraph();
2479  ol.endParagraph();
2480  ol.popGeneratorState();
2481  ol.endMemberDescription();
2482  }
2483  }
2484 
2485  ol.endMemberDeclaration(anchor(),inheritId);
2486 
2488  //printf("< %s MemberDefImpl::writeDeclaration() inGroup=%d\n",qPrint(qualifiedName()),inGroup);
2489 }

引用了 _writeTemplatePrefix(), anchor(), MemberDefImpl::IMPL::annEnumType, MemberDefImpl::IMPL::annMemb, QCString::append(), argsString(), ASSERT, QCString::at(), MemberDefImpl::IMPL::bitfields, briefDescription(), DefinitionMixin< MemberDefMutable >::briefFile(), DefinitionMixin< MemberDefMutable >::briefLine(), Config_getBool, createDocParser(), OutputList::disable(), OutputList::disableAllBut(), Definition::displayName(), OutputGenerator::Docbook, OutputList::docify(), ArgumentList::empty(), OutputList::enable(), OutputList::endAnonTypeScope(), OutputList::endDoxyAnchor(), OutputList::endMemberDeclaration(), OutputList::endMemberDescription(), OutputList::endMemberItem(), OutputList::endMemberTemplateParams(), OutputList::endParagraph(), OutputList::endTextLink(), OutputList::endTypewriter(), excpString(), FALSE, getAnonymousEnumType(), DefinitionMixin< MemberDefMutable >::getBodyDef(), getClass(), MemberDef::getClassDef(), getClassDef(), getClassDefOfAnonymousType(), MemberDef::getFileDef(), getFileDef(), MemberDef::getGroupDef(), getGroupDef(), DefinitionMixin< MemberDefMutable >::getLanguage(), getLanguageSpecificSeparator(), MemberDef::getNamespaceDef(), getNamespaceDef(), DefinitionMixin< MemberDefMutable >::getOuterScope(), getOutputFileBase(), hasDetailedDescription(), hasOneLineInitializer(), ArgumentList::hasParameters(), OutputGenerator::Html, MemberDefImpl::IMPL::initializer, OutputList::insertMemberAlign(), isAddable(), DefinitionMixin< MemberDefMutable >::isAnonymous(), isDefine(), isDocumentedFriendClass(), QCString::isEmpty(), OutputList::isEnabled(), isEvent(), isGettable(), isImplementation(), isObjCMethod(), isObjCProperty(), isPrivateGettable(), isPrivateSettable(), isProperty(), isProtectedGettable(), isProtectedSettable(), isRaisable(), isReference(), isRemovable(), isSettable(), isStatic(), isTypeAlias(), isTypedef(), OutputGenerator::Latex, QCString::left(), QCString::length(), linkifyText(), m_impl, OutputGenerator::Man, reg::match(), MemberType_EnumValue, MemberType_Friend, MemberDefImpl::IMPL::mtype, Definition::name(), DefinitionMixin< MemberDefMutable >::name(), Normal, OutputList::parseText(), OutputList::popGeneratorState(), QCString::prepend(), Private, MemberDefImpl::IMPL::prot, OutputList::pushGeneratorState(), removeAnonymousScopes(), QCString::right(), OutputGenerator::RTF, reg::search(), setAnonymousUsed(), MemberDefMutable::setAnonymousUsed(), QCString::simplifyWhiteSpace(), SrcLangExt_Cpp, SrcLangExt_Slice, OutputList::startAnonTypeScope(), OutputList::startDoxyAnchor(), OutputList::startMemberDeclaration(), OutputList::startMemberDescription(), OutputList::startMemberItem(), OutputList::startMemberTemplateParams(), OutputList::startParagraph(), OutputList::startTextLink(), OutputList::startTypewriter(), QCString::str(), QCString::stripPrefix(), substitute(), MemberDefImpl::IMPL::tArgList, theTranslator, toClassDefMutable(), toMemberDefMutable(), Translator::trMore(), TRUE, MemberDefImpl::IMPL::type, validatingParseDoc(), MemberDefImpl::IMPL::virt, warnIfUndocumented(), ClassDefMutable::writeDeclaration(), OutputList::writeDoc(), MemberDef::writeEnumDeclaration(), OutputList::writeLatexSpacing(), writeLink(), MemberDefMutable::writeLink(), OutputList::writeNonBreakableSpace() , 以及 OutputList::writeString().

◆ writeDocumentation()

void MemberDefImpl::writeDocumentation ( const MemberList ml,
int  memCount,
int  memTotal,
OutputList ol,
const QCString scName,
const Definition container,
bool  inGroup,
bool  showEnumValues = FALSE,
bool  showInline = FALSE 
) const
virtual

Writes the "detailed documentation" section of this member to all active output formats.

实现了 MemberDefMutable.

在文件 memberdef.cpp3217 行定义.

3226 {
3227  // if this member is in a group find the real scope name.
3228  bool hasParameterList = FALSE;
3229 
3230  //printf("MemberDefImpl::writeDocumentation(): name='%s' hasDocs='%d' containerType=%d inGroup=%d sectionLinkable=%d\n",
3231  // qPrint(name()),hasDocs,container->definitionType(),inGroup,hasDetailedDescription());
3232 
3233  //if ( !hasDocs ) return;
3234  //if (isEnumValue() && !showEnumValues) return;
3235 
3236  SrcLangExt lang = getLanguage();
3237  //printf("member=%s lang=%d\n",qPrint(name()),lang);
3238  bool optVhdl = lang==SrcLangExt_VHDL;
3240 
3241  QCString scopeName = scName;
3242  QCString memAnchor = anchor();
3243  QCString ciname = container->displayName();
3244  const Definition *scopedContainer = container; // see bug 753608
3245  if (container->definitionType()==TypeGroup)
3246  {
3247  if (getClassDef()) { scopeName=getClassDef()->displayName(); scopedContainer=getClassDef(); }
3248  else if (getNamespaceDef()) { scopeName=getNamespaceDef()->displayName(); scopedContainer=getNamespaceDef(); }
3249  else if (getFileDef()) { scopeName=getFileDef()->displayName(); scopedContainer=getFileDef(); }
3250  ciname = (toGroupDef(container))->groupTitle();
3251  }
3252  else if (container->definitionType()==TypeFile && getNamespaceDef() && getNamespaceDef()->isLinkable())
3253  { // member is in a namespace, but is written as part of the file documentation
3254  // as well, so we need to make sure its anchor is unique (it is not really used).
3255  memAnchor.prepend("file_");
3256  }
3257 
3258  QCString cname = container->name();
3259  QCString cfname = getOutputFileBase();
3260 
3261  // get member name
3262  QCString doxyName=name();
3263  // prepend scope if there is any. TODO: make this optional for C only docs
3264  if (!scopeName.isEmpty())
3265  {
3266  doxyName.prepend(scopeName+sep);
3267  }
3268  QCString doxyArgs=argsString();
3269 
3270  QCString ldef = definition();
3271  QCString title = name();
3272  //printf("member '%s' def='%s'\n",qPrint(name()),qPrint(ldef));
3273  if (isEnumerate())
3274  {
3275  if (title.at(0)=='@')
3276  {
3277  ldef = title = "anonymous enum";
3278  if (!m_impl->enumBaseType.isEmpty())
3279  {
3280  ldef+=" : "+m_impl->enumBaseType;
3281  }
3282  }
3283  else
3284  {
3285  if (lang==SrcLangExt_Cpp)
3286  {
3287  if (isEnumStruct()) ldef.prepend("struct ");
3288  else if (isStrong()) ldef.prepend("class ");
3289  }
3290  ldef.prepend("enum ");
3291  if (isSliceLocal())
3292  {
3293  ldef.prepend("local ");
3294  }
3295  }
3296  }
3297  else if (isEnumValue())
3298  {
3299  if (ldef.at(0)=='@')
3300  {
3301  ldef=ldef.mid(2);
3302  }
3303  }
3304  else if (isFunction() && !isObjCMethod())
3305  {
3306  title += "()";
3307  }
3308  if (lang == SrcLangExt_Slice)
3309  {
3310  // Remove the container scope from the member name.
3311  QCString prefix = scName + sep;
3312  int pos = ldef.findRev(prefix.data());
3313  if(pos != -1)
3314  {
3315  ldef.remove(pos, prefix.length());
3316  }
3317  }
3318 
3319  //----------------------------------------
3320 
3321  ol.pushGeneratorState();
3322 
3323  bool htmlEndLabelTable=FALSE;
3324  StringVector sl = getLabels(scopedContainer);
3325 
3326  static const reg::Ex r(R"(@\d+)");
3327  reg::Match match;
3328  std::string sdef = ldef.str();
3329  if ((isVariable() || isTypedef()) && reg::search(sdef,match,r))
3330  {
3331  // find enum type and insert it in the definition
3332  bool found=false;
3333  for (const auto &vmd : *ml)
3334  {
3335  if (vmd->isEnumerate() && match.str()==vmd->name())
3336  {
3337  ol.startDoxyAnchor(cfname,cname,memAnchor,doxyName,doxyArgs);
3338  ol.startMemberDoc(ciname,name(),memAnchor,name(),memCount,memTotal,showInline);
3339  std::string prefix = match.prefix().str();
3340  std::string suffix = match.suffix().str();
3341  linkifyText(TextGeneratorOLImpl(ol),scopedContainer,getBodyDef(),this,prefix.c_str());
3342  vmd->writeEnumDeclaration(ol,getClassDef(),getNamespaceDef(),getFileDef(),getGroupDef());
3343  linkifyText(TextGeneratorOLImpl(ol),scopedContainer,getBodyDef(),this,suffix.c_str());
3344 
3345  found=true;
3346  break;
3347  }
3348  }
3349  if (!found) // anonymous compound
3350  {
3351  //printf("Anonymous compound '%s'\n",qPrint(cname));
3352  ol.startDoxyAnchor(cfname,cname,memAnchor,doxyName,doxyArgs);
3353  ol.startMemberDoc(ciname,name(),memAnchor,"",memCount,memTotal,showInline);
3354  // search for the last anonymous compound name in the definition
3355 
3357  if (reg::search(sdef,match,reAnonymous))
3358  {
3359  std::string prefix = match.prefix().str();
3360  std::string suffix = match.suffix().str();
3361  ol.docify(prefix.c_str());
3362  ol.docify(" { ... } ");
3363  linkifyText(TextGeneratorOLImpl(ol),scopedContainer,getBodyDef(),this,suffix.c_str());
3364  }
3365  else
3366  {
3367  linkifyText(TextGeneratorOLImpl(ol),scopedContainer,getBodyDef(),this,ldef);
3368  }
3369  }
3370  }
3371  else // not an enum value or anonymous compound
3372  {
3373  ol.startDoxyAnchor(cfname,cname,memAnchor,doxyName,doxyArgs);
3374  ol.startMemberDoc(ciname,name(),memAnchor,title,memCount,memTotal,showInline);
3375 
3377  {
3379  ol.docify(m_impl->metaData);
3381  }
3382 
3383  const ClassDef *cd=getClassDef();
3384  const NamespaceDef *nd=getNamespaceDef();
3385  if (!Config_getBool(HIDE_SCOPE_NAMES))
3386  {
3387  bool first=TRUE;
3388  if (!m_impl->defTmpArgLists.empty() && lang==SrcLangExt_Cpp)
3389  // definition has explicit template parameter declarations
3390  {
3391  for (const ArgumentList &tal : m_impl->defTmpArgLists)
3392  {
3393  if (!tal.empty())
3394  {
3395  if (!first) ol.docify(" ");
3397  _writeTemplatePrefix(ol,scopedContainer,tal);
3399  }
3400  }
3401  }
3402  else // definition gets it template parameters from its class
3403  // (since no definition was found)
3404  {
3405  if (cd && lang==SrcLangExt_Cpp && !isTemplateSpecialization())
3406  {
3407  for (const ArgumentList &tal : cd->getTemplateParameterLists())
3408  {
3409  if (!tal.empty())
3410  {
3411  if (!first) ol.docify(" ");
3413  _writeTemplatePrefix(ol,scopedContainer,tal,false);
3415  }
3416  }
3417  }
3418  if (m_impl->tArgList.hasParameters() && lang==SrcLangExt_Cpp) // function template prefix
3419  {
3421  _writeTemplatePrefix(ol,scopedContainer,m_impl->tArgList);
3423  }
3424  }
3425  }
3426 
3427  if (!sl.empty())
3428  {
3429  ol.pushGeneratorState();
3430  ol.disableAll();
3432  ol.writeString("<table class=\"mlabels\">\n");
3433  ol.writeString(" <tr>\n");
3434  ol.writeString(" <td class=\"mlabels-left\">\n");
3435  ol.popGeneratorState();
3436  htmlEndLabelTable=TRUE;
3437  }
3438 
3440  if (cd && cd->isObjectiveC())
3441  {
3442  // strip scope name
3443  int ep = ldef.find("::");
3444  if (ep!=-1)
3445  {
3446  int sp=ldef.findRev(' ',ep);
3447  if (sp!=-1)
3448  {
3449  ldef=ldef.left(sp+1)+ldef.mid(ep+2);
3450  } else {
3451  ldef=ldef.mid(ep+2);
3452  }
3453  }
3454  // strip keywords
3455  int dp = ldef.find(':');
3456  if (dp!=-1)
3457  {
3458  ldef=ldef.left(dp+1);
3459  }
3460  int dl=ldef.length();
3461  //printf("start >%s<\n",qPrint(ldef));
3462  int i=dl-1;
3463  while (i>=0 && (isId(ldef.at(i)) || ldef.at(i)==':')) i--;
3464  while (i>=0 && isspace((uchar)ldef.at(i))) i--;
3465  if (i>0)
3466  {
3467  // insert braches around the type
3468  QCString tmp("("+ldef.left(i+1)+")"+ldef.mid(i+1));
3469  ldef=tmp;
3470  }
3471  //printf("end >%s< i=%d\n",qPrint(ldef),i);
3472  if (isStatic()) ldef.prepend("+ "); else ldef.prepend("- ");
3473  }
3474 
3475  if (optVhdl)
3476  {
3477  hasParameterList=VhdlDocGen::writeVHDLTypeDocumentation(this,scopedContainer,ol);
3478  }
3479  else if (lang==SrcLangExt_Slice)
3480  {
3481  // Eliminate the self-reference.
3482  int pos = ldef.findRev(' ');
3483  if (pos<0) pos=0;
3484  if (pos>0)
3485  {
3487  scopedContainer,
3488  getBodyDef(),
3489  this,
3490  ldef.left(pos)
3491  );
3492  }
3493  ol.docify(ldef.mid(pos));
3494  const Definition *scope = cd;
3495  if (scope==0) scope = nd;
3496  hasParameterList=writeDefArgumentList(ol,scope,this);
3497  }
3498  else
3499  {
3501  scopedContainer,
3502  getBodyDef(),
3503  this,
3504  substitute(ldef,"::",sep)
3505  );
3506  const Definition *scope = cd;
3507  if (scope==0) scope = nd;
3508  hasParameterList=writeDefArgumentList(ol,scope,this);
3509  }
3510 
3511  if (hasOneLineInitializer()) // add initializer
3512  {
3513  if (!isDefine())
3514  {
3515  //ol.docify(" = ");
3516  ol.docify(" ");
3518  linkifyText(TextGeneratorOLImpl(ol),scopedContainer,getBodyDef(),this,init);
3519  }
3520  else
3521  {
3522  ol.writeNonBreakableSpace(3);
3523  linkifyText(TextGeneratorOLImpl(ol),scopedContainer,getBodyDef(),this,m_impl->initializer);
3524  }
3525  }
3526  if (!excpString().isEmpty()) // add exception list
3527  {
3528  writeExceptionList(ol,cd,this);
3529  hasParameterList=true; // call endParameterList below
3530  }
3531  }
3532 
3533  ol.pushGeneratorState();
3535  if (!sl.empty())
3536  {
3537  ol.startLabels();
3538  size_t count=0;
3539  for (const auto &s : sl)
3540  {
3541  count++;
3542  ol.writeLabel(s.c_str(),count==sl.size());
3543  }
3544  ol.endLabels();
3545  }
3546  ol.popGeneratorState();
3547 
3548  if (hasParameterList)
3549  {
3550  ol.endParameterList();
3551  ol.endMemberDoc(TRUE);
3552  }
3553  else
3554  {
3555  ol.endMemberDocName();
3556  ol.endMemberDoc(FALSE);
3557  }
3558 
3559  // for HTML write the labels here
3560  ol.pushGeneratorState();
3561  ol.disableAll();
3563  if (htmlEndLabelTable)
3564  {
3565  ol.writeString(" </td>\n");
3566  ol.writeString(" <td class=\"mlabels-right\">\n");
3567  ol.startLabels();
3568  size_t count=0;
3569  for (const auto &s : sl)
3570  {
3571  count++;
3572  ol.writeLabel(s.c_str(),count==sl.size());
3573  }
3574  ol.endLabels();
3575  ol.writeString(" </td>\n");
3576  ol.writeString(" </tr>\n");
3577  ol.writeString("</table>\n");
3578  }
3579  ol.writeString("</div>");
3580  ol.popGeneratorState();
3581 
3582 
3583  ol.endDoxyAnchor(cfname,memAnchor);
3584  ol.startIndent();
3585 
3586  _writeGroupInclude(ol,inGroup);
3587 
3588  /* write multi-line initializer (if any) */
3590 
3591  /* write brief description */
3592  QCString brief = briefDescription();
3593  if (!brief.isEmpty() &&
3594  (Config_getBool(REPEAT_BRIEF) ||
3595  !Config_getBool(BRIEF_MEMBER_DESC)
3596  )
3597  )
3598  {
3599  ol.startParagraph();
3601  scopedContainer,this,
3602  brief,FALSE,FALSE,
3603  QCString(),TRUE,FALSE,Config_getBool(MARKDOWN_SUPPORT));
3604  ol.endParagraph();
3605  }
3606 
3607  /* write detailed description */
3608  QCString detailed = documentation();
3609  if (!detailed.isEmpty() ||
3610  !inbodyDocumentation().isEmpty())
3611  {
3612  // write vhdl inline code with or without option INLINE_SOURCE
3613  if (optVhdl && VhdlDocGen::isMisc(this))
3614  {
3615  VhdlDocGen::writeSource(this,ol,cname);
3616  return;
3617  }
3618  else
3619  {
3620  ol.generateDoc(docFile(),docLine(),scopedContainer,this,detailed+"\n",TRUE,FALSE,
3621  QCString(),FALSE,FALSE,Config_getBool(MARKDOWN_SUPPORT));
3622  }
3623 
3624  if (!inbodyDocumentation().isEmpty())
3625  {
3627  scopedContainer,this,
3629  QCString(),FALSE,FALSE,Config_getBool(MARKDOWN_SUPPORT));
3630  }
3631  }
3632  else if (!brief.isEmpty() && (Config_getBool(REPEAT_BRIEF) || !Config_getBool(BRIEF_MEMBER_DESC)))
3633  {
3634  if (!inbodyDocumentation().isEmpty())
3635  {
3636  ol.generateDoc(inbodyFile(),inbodyLine(),scopedContainer,this,inbodyDocumentation()+"\n",TRUE,FALSE,
3637  QCString(),FALSE,FALSE,Config_getBool(MARKDOWN_SUPPORT));
3638  }
3639  }
3640 
3641 
3642  //printf("***** defArgList=%p name=%s docs=%s hasDocs=%d\n",
3643  // defArgList,
3644  // defArgList?defArgList->hasDocumentation():-1);
3645  const ArgumentList &docArgList = m_impl->templateMaster ?
3647  m_impl->defArgList;
3648  if (docArgList.hasDocumentation())
3649  {
3650  QCString paramDocs;
3651  for (const Argument &a : docArgList)
3652  {
3653  if (a.hasDocumentation())
3654  {
3655  QCString docsWithoutDir = a.docs;
3656  QCString direction = extractDirection(docsWithoutDir);
3657  paramDocs+="@param"+direction+" "+a.name+" "+docsWithoutDir;
3658  }
3659  }
3660  // feed the result to the documentation parser
3661  ol.generateDoc(
3662  docFile(),docLine(),
3663  scopedContainer,
3664  this, // memberDef
3665  paramDocs, // docStr
3666  TRUE, // indexWords
3667  FALSE, // isExample
3668  QCString(),FALSE,FALSE,Config_getBool(MARKDOWN_SUPPORT)
3669  );
3670 
3671  }
3672 
3673  _writeEnumValues(ol,scopedContainer,cfname,ciname,cname);
3674  _writeReimplements(ol);
3677  _writeExamples(ol);
3679  writeSourceDef(ol,cname);
3680  writeInlineCode(ol,cname);
3681  if (hasReferencesRelation()) writeSourceRefs(ol,cname);
3683  _writeCallGraph(ol);
3684  _writeCallerGraph(ol);
3685 
3686  ol.endIndent();
3687 
3688  // enable LaTeX again
3689  //if (Config_getBool(EXTRACT_ALL) && !hasDocs) ol.enable(OutputGenerator::Latex);
3690  ol.popGeneratorState();
3691 
3693 }

引用了 _writeCallerGraph(), _writeCallGraph(), _writeCategoryRelation(), _writeEnumValues(), _writeExamples(), _writeGroupInclude(), _writeMultiLineInitializer(), _writeReimplementedBy(), _writeReimplements(), _writeTemplatePrefix(), _writeTypeConstraints(), anchor(), argsString(), MemberDef::argumentList(), QCString::at(), briefDescription(), DefinitionMixin< MemberDefMutable >::briefFile(), DefinitionMixin< MemberDefMutable >::briefLine(), Config_getBool, QCString::data(), MemberDefImpl::IMPL::defArgList, definition(), Definition::definitionType(), MemberDefImpl::IMPL::defTmpArgLists, OutputList::disable(), OutputList::disableAll(), NamespaceDef::displayName(), FileDef::displayName(), Definition::displayName(), ClassDef::displayName(), DefinitionMixin< MemberDefMutable >::docFile(), OutputList::docify(), DefinitionMixin< MemberDefMutable >::docLine(), documentation(), ArgumentList::empty(), OutputList::enable(), OutputList::endDoxyAnchor(), OutputList::endIndent(), OutputList::endLabels(), OutputList::endMemberDoc(), OutputList::endMemberDocName(), OutputList::endMemberDocPrefixItem(), OutputList::endParagraph(), OutputList::endParameterList(), MemberDefImpl::IMPL::enumBaseType, excpString(), extractDirection(), FALSE, QCString::find(), QCString::findRev(), OutputList::generateDoc(), DefinitionMixin< MemberDefMutable >::getBodyDef(), getClassDef(), getFileDef(), getGroupDef(), getLabels(), DefinitionMixin< MemberDefMutable >::getLanguage(), getLanguageSpecificSeparator(), getNamespaceDef(), getOutputFileBase(), ClassDef::getTemplateParameterLists(), ArgumentList::hasDocumentation(), hasMultiLineInitializer(), hasOneLineInitializer(), ArgumentList::hasParameters(), hasReferencedByRelation(), hasReferencesRelation(), OutputGenerator::Html, DefinitionMixin< MemberDefMutable >::inbodyDocumentation(), DefinitionMixin< MemberDefMutable >::inbodyFile(), DefinitionMixin< MemberDefMutable >::inbodyLine(), Config::init(), MemberDefImpl::IMPL::initializer, isDefine(), QCString::isEmpty(), isEnumerate(), isEnumStruct(), isEnumValue(), isFunction(), isId(), NamespaceDef::isLinkable(), VhdlDocGen::isMisc(), isObjCMethod(), ClassDef::isObjectiveC(), isSliceLocal(), reg::isspace(), isStatic(), isStrong(), isTemplateSpecialization(), isTypedef(), isVariable(), QCString::left(), QCString::length(), linkifyText(), m_impl, reg::match(), MemberDefImpl::IMPL::metaData, QCString::mid(), Definition::name(), DefinitionMixin< MemberDefMutable >::name(), OutputList::popGeneratorState(), QCString::prepend(), OutputList::pushGeneratorState(), reAnonymous, QCString::remove(), reg::search(), QCString::simplifyWhiteSpace(), SrcLangExt_Cpp, SrcLangExt_Slice, SrcLangExt_VHDL, OutputList::startDoxyAnchor(), OutputList::startIndent(), OutputList::startLabels(), OutputList::startMemberDoc(), OutputList::startMemberDocName(), OutputList::startMemberDocPrefixItem(), OutputList::startParagraph(), QCString::str(), substitute(), MemberDefImpl::IMPL::tArgList, MemberDefImpl::IMPL::templateMaster, toGroupDef(), TRUE, Definition::TypeFile, Definition::TypeGroup, warnIfUndocumentedParams(), writeDefArgumentList(), writeExceptionList(), DefinitionMixin< MemberDefMutable >::writeInlineCode(), OutputList::writeLabel(), OutputList::writeNonBreakableSpace(), VhdlDocGen::writeSource(), DefinitionMixin< MemberDefMutable >::writeSourceDef(), DefinitionMixin< MemberDefMutable >::writeSourceReffedBy(), DefinitionMixin< MemberDefMutable >::writeSourceRefs(), OutputList::writeString() , 以及 VhdlDocGen::writeVHDLTypeDocumentation().

◆ writeEnumDeclaration()

void MemberDefImpl::writeEnumDeclaration ( OutputList typeDecl,
const ClassDef cd,
const NamespaceDef nd,
const FileDef fd,
const GroupDef gd 
) const
virtual

实现了 MemberDef.

在文件 memberdef.cpp4486 行定义.

4488 {
4489  int enumMemCount=0;
4490 
4491  uint numVisibleEnumValues=0;
4492  for (const auto &fmd : m_impl->enumFields)
4493  {
4494  if (fmd->isBriefSectionVisible()) numVisibleEnumValues++;
4495  }
4496  if (numVisibleEnumValues==0 && !isBriefSectionVisible())
4497  {
4498  return;
4499  }
4500 
4501  QCString n = name();
4502  int i=n.findRev("::");
4503  if (i!=-1) n=n.right(n.length()-i-2); // strip scope (TODO: is this needed?)
4504  if (n[0]!='@') // not an anonymous enum
4505  {
4507  {
4508  //_writeTagData(compoundType);
4509  writeLink(typeDecl,cd,nd,fd,gd);
4510  }
4511  else
4512  {
4513  typeDecl.startBold();
4514  typeDecl.docify(n);
4515  typeDecl.endBold();
4516  }
4517  typeDecl.writeChar(' ');
4518  }
4519  if (!m_impl->enumBaseType.isEmpty())
4520  {
4521  typeDecl.writeChar(':');
4522  typeDecl.writeChar(' ');
4523  typeDecl.docify(m_impl->enumBaseType);
4524  typeDecl.writeChar(' ');
4525  }
4526 
4527  uint enumValuesPerLine = (uint)Config_getInt(ENUM_VALUES_PER_LINE);
4528  if (numVisibleEnumValues>0 && enumValuesPerLine>0)
4529  {
4530  typeDecl.docify("{ ");
4531 
4532  auto it = m_impl->enumFields.begin();
4533  if (it!=m_impl->enumFields.end())
4534  {
4535  const MemberDef *fmd=*it;
4536  bool fmdVisible = fmd->isBriefSectionVisible();
4537  bool first=true;
4538  while (fmd)
4539  {
4540  if (fmdVisible)
4541  {
4542  if (!first)
4543  {
4544  typeDecl.writeString(", ");
4545  }
4546  /* in html we start a new line after a number of items */
4547  if (numVisibleEnumValues>enumValuesPerLine
4548  && (enumMemCount%enumValuesPerLine)==0
4549  )
4550  {
4551  typeDecl.pushGeneratorState();
4553  typeDecl.enable(OutputGenerator::Latex);
4554  typeDecl.enable(OutputGenerator::Docbook);
4555  typeDecl.lineBreak();
4556  typeDecl.disable(OutputGenerator::Latex);
4558  typeDecl.writeString("&#160;&#160;");
4559  typeDecl.popGeneratorState();
4560  }
4561 
4562  MemberDefMutable *fmdm = toMemberDefMutable(fmd);
4563  if (fmdm && fmd->hasDocumentation()) // enum value has docs
4564  {
4565  fmdm->writeLink(typeDecl,cd,nd,fd,gd);
4566  }
4567  else // no docs for this enum value
4568  {
4569  typeDecl.startBold();
4570  typeDecl.docify(fmd->name());
4571  typeDecl.endBold();
4572  }
4573  if (fmd->hasOneLineInitializer()) // enum value has initializer
4574  {
4575  //typeDecl.writeString(" = ");
4576  typeDecl.writeString(" ");
4577  typeDecl.parseText(fmd->initializer());
4578  }
4579  first=false;
4580  }
4581 
4582  bool prevVisible = fmdVisible;
4583  ++it;
4584  if (it!=m_impl->enumFields.end())
4585  {
4586  fmd=*it;
4587  }
4588  else
4589  {
4590  fmd=0;
4591  }
4592  if (prevVisible)
4593  {
4594  typeDecl.disable(OutputGenerator::Man);
4595  typeDecl.writeString("\n"); // to prevent too long lines in LaTeX
4596  typeDecl.enable(OutputGenerator::Man);
4597  enumMemCount++;
4598  }
4599  }
4600  if (numVisibleEnumValues>enumValuesPerLine)
4601  {
4602  typeDecl.pushGeneratorState();
4604  typeDecl.lineBreak();
4605  typeDecl.popGeneratorState();
4606  }
4607  }
4608  typeDecl.docify(" }");
4609  }
4610 }

引用了 MemberVector::begin(), Config_getInt, OutputList::disable(), OutputList::disableAllBut(), OutputGenerator::Docbook, OutputList::docify(), OutputList::enable(), MemberVector::end(), OutputList::endBold(), MemberDefImpl::IMPL::enumBaseType, MemberDefImpl::IMPL::enumFields, QCString::findRev(), MemberDef::hasDocumentation(), hasDocumentedEnumValues(), MemberDef::hasOneLineInitializer(), OutputGenerator::Html, MemberDef::initializer(), isBriefSectionVisible(), MemberDef::isBriefSectionVisible(), QCString::isEmpty(), isLinkableInProject(), OutputGenerator::Latex, QCString::length(), OutputList::lineBreak(), m_impl, OutputGenerator::Man, Definition::name(), DefinitionMixin< MemberDefMutable >::name(), OutputList::parseText(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), QCString::right(), OutputList::startBold(), toMemberDefMutable(), OutputList::writeChar(), writeLink(), MemberDefMutable::writeLink() , 以及 OutputList::writeString().

◆ writeLink()

void MemberDefImpl::writeLink ( OutputList ol,
const ClassDef cd,
const NamespaceDef nd,
const FileDef fd,
const GroupDef gd,
bool  onlyText = FALSE 
) const
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp1769 行定义.

1772 {
1773  SrcLangExt lang = getLanguage();
1774  static bool hideScopeNames = Config_getBool(HIDE_SCOPE_NAMES);
1776  QCString n = name();
1777  const ClassDef *classDef = getClassDef();
1778  const NamespaceDef *nspace = getNamespaceDef();
1779  if (!hideScopeNames)
1780  {
1782  {
1783  n.prepend(m_impl->enumScope->displayName()+sep);
1784  }
1785  if (classDef && gd && !isRelated())
1786  {
1787  n.prepend(classDef->displayName()+sep);
1788  }
1789  else if (nspace && (gd || fd))
1790  {
1791  n.prepend(nspace->displayName()+sep);
1792  }
1793  }
1794 
1795  if (isObjCMethod())
1796  {
1797  if (isStatic()) ol.docify("+ "); else ol.docify("- ");
1798  }
1799  if (!onlyText && (isLinkable() || hasDetailedDescription())) // write link
1800  {
1801  if (m_impl->mtype==MemberType_EnumValue && getGroupDef()==0 && // enum value is not grouped
1802  getEnumScope() && getEnumScope()->getGroupDef()) // but its container is
1803  {
1804  const GroupDef *enumValGroup = getEnumScope()->getGroupDef();
1805  ol.writeObjectLink(enumValGroup->getReference(),
1806  enumValGroup->getOutputFileBase(),
1807  anchor(),n);
1808  }
1809  else
1810  {
1812  }
1813  }
1814  else // write only text
1815  {
1816  ol.startBold();
1817  ol.docify(n);
1818  ol.endBold();
1819  }
1820 }

引用了 anchor(), Config_getBool, NamespaceDef::displayName(), ClassDef::displayName(), MemberDef::displayName(), OutputList::docify(), OutputList::endBold(), MemberDefImpl::IMPL::enumScope, getClassDef(), getEnumScope(), MemberDef::getGroupDef(), getGroupDef(), DefinitionMixin< MemberDefMutable >::getLanguage(), getLanguageSpecificSeparator(), getNamespaceDef(), GroupDef::getOutputFileBase(), getOutputFileBase(), getReference(), Definition::getReference(), hasDetailedDescription(), isLinkable(), isObjCMethod(), isRelated(), isStatic(), MemberDefImpl::IMPL::livesInsideEnum, m_impl, MemberType_EnumValue, MemberDefImpl::IMPL::mtype, DefinitionMixin< MemberDefMutable >::name(), QCString::prepend(), OutputList::startBold(), TRUE , 以及 OutputList::writeObjectLink().

被这些函数引用 writeDeclaration() , 以及 writeEnumDeclaration().

◆ writeMemberDocSimple()

void MemberDefImpl::writeMemberDocSimple ( OutputList ol,
const Definition container 
) const
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp3725 行定义.

3726 {
3727  Definition *scope = getOuterScope();
3728  QCString doxyName = name();
3729  QCString doxyArgs = argsString();
3730  QCString memAnchor = anchor();
3731  QCString cfname = getOutputFileBase();
3732  QCString cname;
3733  if (scope) cname = scope->name();
3734  if (doxyName.at(0)=='@')
3735  {
3736  doxyName="__unnamed__";
3737  }
3738 
3739  ClassDef *cd = m_impl->accessorClass;
3740  //printf("===> %s::anonymous: %s\n",qPrint(name()),cd?qPrint(cd->name()):"<none>");
3741 
3742  if (container && container->definitionType()==Definition::TypeClass &&
3743  !(toClassDef(container))->isJavaEnum())
3744  {
3745  ol.startInlineMemberType();
3746  ol.startDoxyAnchor(cfname,cname,memAnchor,doxyName,doxyArgs);
3747 
3748  QCString ts = fieldType();
3749 
3750  if (cd) // cd points to an anonymous struct pointed to by this member
3751  // so we add a link to it from the type column.
3752  {
3753  int i=0;
3754  const char *prefixes[] = { "struct ","union ","class ", 0 };
3755  const char **p = prefixes;
3756  while (*p)
3757  {
3758  int l=qstrlen(*p);
3759  if (ts.left(l)==*p)
3760  {
3761  ol.writeString(*p);
3762  i=l;
3763  }
3764  p++;
3765  }
3766  ol.writeObjectLink(cd->getReference(),
3767  cd->getOutputFileBase(),
3768  cd->anchor(),ts.mid(i));
3769  }
3770  else // use standard auto linking
3771  {
3772  linkifyText(TextGeneratorOLImpl(ol), // out
3773  scope, // scope
3774  getBodyDef(), // fileScope
3775  this, // self
3776  ts // text
3777  );
3778  }
3779  ol.endDoxyAnchor(cfname,memAnchor);
3780  ol.endInlineMemberType();
3781  }
3782 
3783  ol.startInlineMemberName();
3784  ol.docify(doxyName);
3785  if (isVariable() && !argsString().isEmpty() && !isObjCMethod())
3786  {
3788  }
3789  if (!m_impl->bitfields.isEmpty()) // add bitfields
3790  {
3792  }
3793  ol.endInlineMemberName();
3794 
3795  ol.startInlineMemberDoc();
3796 
3797  QCString brief = briefDescription();
3798  QCString detailed = documentation();
3799 
3800  /* write brief description */
3801  if (!brief.isEmpty())
3802  {
3804  getOuterScope()?getOuterScope():container,this,
3805  brief,FALSE,FALSE,
3806  QCString(),TRUE,FALSE,Config_getBool(MARKDOWN_SUPPORT));
3807  }
3808 
3809  /* write detailed description */
3810  if (!detailed.isEmpty())
3811  {
3812  if (!brief.isEmpty())
3813  {
3815  ol.lineBreak();
3817  }
3818  ol.generateDoc(docFile(),docLine(),
3819  getOuterScope()?getOuterScope():container,this,
3820  detailed+"\n",FALSE,FALSE,
3821  QCString(),FALSE,FALSE,Config_getBool(MARKDOWN_SUPPORT));
3822 
3823  }
3824 
3825  ol.endInlineMemberDoc();
3826 }

引用了 MemberDefImpl::IMPL::accessorClass, anchor(), ClassDef::anchor(), argsString(), QCString::at(), MemberDefImpl::IMPL::bitfields, briefDescription(), DefinitionMixin< MemberDefMutable >::briefFile(), DefinitionMixin< MemberDefMutable >::briefLine(), Config_getBool, Definition::definitionType(), OutputList::disable(), DefinitionMixin< MemberDefMutable >::docFile(), OutputList::docify(), DefinitionMixin< MemberDefMutable >::docLine(), documentation(), OutputList::enable(), OutputList::endDoxyAnchor(), OutputList::endInlineMemberDoc(), OutputList::endInlineMemberName(), OutputList::endInlineMemberType(), FALSE, fieldType(), OutputList::generateDoc(), DefinitionMixin< MemberDefMutable >::getBodyDef(), DefinitionMixin< MemberDefMutable >::getOuterScope(), getOutputFileBase(), ClassDef::getOutputFileBase(), ClassDef::getReference(), OutputGenerator::Html, QCString::isEmpty(), isObjCMethod(), isVariable(), QCString::left(), OutputList::lineBreak(), linkifyText(), m_impl, QCString::mid(), Definition::name(), DefinitionMixin< MemberDefMutable >::name(), qstrlen(), OutputList::startDoxyAnchor(), OutputList::startInlineMemberDoc(), OutputList::startInlineMemberName(), OutputList::startInlineMemberType(), toClassDef(), TRUE, Definition::TypeClass, OutputList::writeObjectLink() , 以及 OutputList::writeString().

◆ writeTagFile()

void MemberDefImpl::writeTagFile ( TextStream tagFile) const
virtual

实现了 MemberDefMutable.

在文件 memberdef.cpp4325 行定义.

4326 {
4327  if (!isLinkableInProject()) return;
4328  tagFile << " <member kind=\"";
4329  switch (m_impl->mtype)
4330  {
4331  case MemberType_Define: tagFile << "define"; break;
4332  case MemberType_EnumValue: tagFile << "enumvalue"; break;
4333  case MemberType_Property: tagFile << "property"; break;
4334  case MemberType_Event: tagFile << "event"; break;
4335  case MemberType_Variable: tagFile << "variable"; break;
4336  case MemberType_Typedef: tagFile << "typedef"; break;
4337  case MemberType_Enumeration: tagFile << "enumeration"; break;
4338  case MemberType_Function: tagFile << "function"; break;
4339  case MemberType_Signal: tagFile << "signal"; break;
4340  case MemberType_Friend: tagFile << "friend"; break;
4341  case MemberType_DCOP: tagFile << "dcop"; break;
4342  case MemberType_Slot: tagFile << "slot"; break;
4343  case MemberType_Interface: tagFile << "interface"; break;
4344  case MemberType_Service: tagFile << "service"; break;
4345  case MemberType_Sequence: tagFile << "sequence"; break;
4346  case MemberType_Dictionary: tagFile << "dictionary"; break;
4347  }
4348  if (m_impl->prot!=Public)
4349  {
4350  tagFile << "\" protection=\"";
4351  if (m_impl->prot==Protected) tagFile << "protected";
4352  else if (m_impl->prot==Package) tagFile << "package";
4353  else /* Private */ tagFile << "private";
4354  }
4355  if (m_impl->virt!=Normal)
4356  {
4357  tagFile << "\" virtualness=\"";
4358  if (m_impl->virt==Virtual) tagFile << "virtual";
4359  else /* Pure */ tagFile << "pure";
4360  }
4361  if (isStatic())
4362  {
4363  tagFile << "\" static=\"yes";
4364  }
4365  tagFile << "\">\n";
4366  if (typeString()!=QCString("@"))
4367  {
4368  tagFile << " <type>" << convertToXML(typeString()) << "</type>\n";
4369  }
4370  tagFile << " <name>" << convertToXML(name()) << "</name>\n";
4371  tagFile << " <anchorfile>" << addHtmlExtensionIfMissing(getOutputFileBase()) << "</anchorfile>\n";
4372  tagFile << " <anchor>" << convertToXML(anchor()) << "</anchor>\n";
4373  QCString idStr = id();
4374  if (!idStr.isEmpty())
4375  {
4376  tagFile << " <clangid>" << convertToXML(idStr) << "</clangid>\n";
4377  }
4378  tagFile << " <arglist>" << convertToXML(argsString()) << "</arglist>\n";
4379  if (isStrong())
4380  {
4381  for (const auto &fmd : m_impl->enumFields)
4382  {
4383  if (!fmd->isReference())
4384  {
4385  tagFile << " <enumvalue file=\"" << convertToXML(addHtmlExtensionIfMissing(getOutputFileBase()));
4386  tagFile << "\" anchor=\"" << convertToXML(fmd->anchor());
4387  idStr = fmd->id();
4388  if (!idStr.isEmpty())
4389  {
4390  tagFile << "\" clangid=\"" << convertToXML(idStr);
4391  }
4392  tagFile << "\">" << convertToXML(fmd->name()) << "</enumvalue>\n";
4393  }
4394  }
4395  }
4396  writeDocAnchorsToTagFile(tagFile);
4397  tagFile << " </member>\n";
4398 }

引用了 addHtmlExtensionIfMissing(), anchor(), argsString(), convertToXML(), MemberDefImpl::IMPL::enumFields, getOutputFileBase(), DefinitionMixin< MemberDefMutable >::id(), QCString::isEmpty(), isLinkableInProject(), isStatic(), isStrong(), m_impl, MemberType_DCOP, MemberType_Define, MemberType_Dictionary, MemberType_Enumeration, MemberType_EnumValue, MemberType_Event, MemberType_Friend, MemberType_Function, MemberType_Interface, MemberType_Property, MemberType_Sequence, MemberType_Service, MemberType_Signal, MemberType_Slot, MemberType_Typedef, MemberType_Variable, MemberDefImpl::IMPL::mtype, DefinitionMixin< MemberDefMutable >::name(), Normal, Package, MemberDefImpl::IMPL::prot, Protected, Public, typeString(), MemberDefImpl::IMPL::virt, Virtual , 以及 DefinitionMixin< MemberDefMutable >::writeDocAnchorsToTagFile().

类成员变量说明

◆ m_impl

IMPL* MemberDefImpl::m_impl
private

在文件 memberdef.cpp379 行定义.

被这些函数引用 _computeIsConstructor(), _computeIsDestructor(), _computeLinkableInProject(), _hasVisibleCallerGraph(), _hasVisibleCallGraph(), _writeCategoryRelation(), _writeExamples(), _writeMultiLineInitializer(), _writeReimplementedBy(), _writeTemplatePrefix(), _writeTypeConstraints(), accessorClass(), addExample(), anchor(), anonymousDeclShown(), argsString(), argumentList(), bitfieldString(), briefDescription(), cacheTypedefVal(), category(), categoryRelation(), copyArgumentNames(), createTemplateInstanceMember(), declaration(), declArgumentList(), deepCopy(), definition(), definitionTemplateParameterLists(), detectUndocumentedParams(), displayDefinition(), documentation(), enableCallerGraph(), enableCallGraph(), enableReferencedByRelation(), enableReferencesRelation(), enumBaseType(), enumFieldList(), excpString(), extraTypeChars(), fieldType(), fromAnonymousMember(), fromAnonymousScope(), getAnonymousEnumType(), getCachedResolvedTypedef(), getCachedTypedefTemplSpec(), getCachedTypedefVal(), getClassDef(), getClassDefOfAnonymousType(), getDeclColumn(), getDeclFileName(), getDeclLine(), getDeclType(), getEnumScope(), getExamples(), getFileDef(), getGroupAlias(), getGroupDef(), getGroupFileName(), getGroupHasDocs(), getGroupPri(), getGroupStartLine(), getLabels(), getMemberGroup(), getMemberGroupId(), getMemberSpecifiers(), getNamespaceDef(), getOutputFileBase(), getReadAccessor(), getSectionList(), getWriteAccessor(), hasCallerGraph(), hasCallGraph(), hasDetailedDescription(), hasDocumentation(), hasDocumentedEnumValues(), hasExamples(), hasMultiLineInitializer(), hasOneLineInitializer(), hasReferencedByRelation(), hasReferencesRelation(), incrementFlowKeyWordCount(), inheritsDocsFrom(), initializer(), initializerLines(), insertEnumField(), insertReimplementedBy(), invalidateCachedArgumentTypes(), invalidateTypedefValCache(), isAbstract(), isAddable(), isAssign(), isAttribute(), isBound(), isBriefSectionVisible(), isConstExpr(), isConstrained(), isCopy(), isDCOP(), isDefault(), isDefine(), isDelete(), isDeleted(), isDictionary(), isDocsForDefinition(), isEnumerate(), isEnumStruct(), isEnumValue(), isEvent(), isExplicit(), isExternal(), isFinal(), isForeign(), isFriend(), isFriendClass(), isFriendToHide(), isFunction(), isFunctionPtr(), isGettable(), isImplementation(), isInitonly(), isInline(), isLinkable(), isMaybeAmbiguous(), isMaybeDefault(), isMaybeVoid(), isMutable(), isNew(), isNoExcept(), isNonAtomic(), isOptional(), isOverride(), isPrivateGettable(), isPrivateSettable(), isProperty(), isProtectedGettable(), isProtectedSettable(), isPrototype(), isPublished(), isRaisable(), isReadable(), isReadonly(), isReference(), isReimplementedBy(), isRelated(), isRemovable(), isRequired(), isRetain(), isSealed(), isSequence(), isSettable(), isSignal(), isSliceLocal(), isSlot(), isStatic(), isStrong(), isStrongEnumValue(), isTemplateSpecialization(), isTransient(), isTypeAlias(), isTypedef(), isTypedefValCached(), isUNOProperty(), isUnretained(), isVariable(), isWeak(), isWritable(), livesInsideEnum(), makeForeign(), makeImplementationDetail(), makeRelated(), memberDeclaration(), MemberDefImpl(), memberDefinition(), memberType(), memberTypeName(), mergeMemberSpecifiers(), moveArgumentList(), moveDeclArgumentList(), moveTo(), numberOfFlowKeyWords(), protection(), qualifiedName(), reimplementedBy(), reimplements(), relatedAlso(), requiresClause(), resolveUnnamedParameters(), setAccessorType(), setAnchor(), setAnonymousEnumType(), setAnonymousUsed(), setArgsString(), setBitfields(), setCategory(), setCategoryRelation(), setDeclFile(), setDefinition(), setDefinitionTemplateParameterLists(), setDocsForDefinition(), setDocumentedEnumValues(), setEnumBaseType(), setEnumClassScope(), setEnumScope(), setExplicitExternal(), setFileDef(), setFromAnonymousMember(), setFromAnonymousScope(), setGroupAlias(), setGroupDef(), setInheritsDocsFrom(), setInitializer(), setMaxInitLines(), setMemberClass(), setMemberDeclaration(), setMemberDefinition(), setMemberGroup(), setMemberGroupId(), setMemberSpecifiers(), setMemberType(), setNamespace(), setProtection(), setPrototype(), setReadAccessor(), setReimplements(), setRelatedAlso(), setRequiresClause(), setSectionList(), setTagInfo(), setTemplateMaster(), setTemplateSpecialization(), setType(), setTypeConstraints(), setWriteAccessor(), templateArguments(), templateMaster(), typeConstraints(), typeString(), virtualness(), visibleMemberGroup(), warnIfUndocumented(), warnIfUndocumentedParams(), writeDeclaration(), writeDocumentation(), writeEnumDeclaration(), writeLink(), writeMemberDocSimple(), writeTagFile() , 以及 ~MemberDefImpl().

◆ m_isConstructorCached

uchar MemberDefImpl::m_isConstructorCached
private

◆ m_isDestructorCached

uchar MemberDefImpl::m_isDestructorCached
private

在文件 memberdef.cpp383 行定义.

被这些函数引用 _computeIsDestructor(), isDestructor(), MemberDefImpl() , 以及 setFileDef().

◆ m_isLinkableCached


该类的文档由以下文件生成:
Translator::trSubprogram
virtual QCString trSubprogram(bool first_capital, bool singular)=0
DefinitionMixin< MemberDefMutable >::briefFile
virtual QCString briefFile() const
Definition: definitionimpl.h:171
MemberDefImpl::IMPL::typeConstraints
ArgumentList typeConstraints
Definition: memberdef.cpp:1199
StringVector
std::vector< std::string > StringVector
Definition: containers.h:32
ArgumentList::trailingReturnType
QCString trailingReturnType() const
Definition: arguments.h:107
MemberDefImpl::_writeTemplatePrefix
void _writeTemplatePrefix(OutputList &ol, const Definition *def, const ArgumentList &al, bool writeReqClause=true) const
Definition: memberdef.cpp:2023
DefinitionMixin< MemberDefMutable >::hasUserDocumentation
virtual bool hasUserDocumentation() const
Definition: definitionimpl.h:177
MemberDefImpl::IMPL::explicitOutputFileBase
QCString explicitOutputFileBase
Definition: memberdef.cpp:1235
OutputList::startExamples
void startExamples()
Definition: outputlist.h:319
Config::init
void init()
OutputList::disableAllBut
void disableAllBut(OutputGenerator::OutputType o)
Definition: outputlist.cpp:76
MemberDefImpl::isConstExpr
virtual bool isConstExpr() const
Definition: memberdef.cpp:5245
DefinitionMixin::isReference
virtual bool isReference() const
Definition: definitionimpl.h:183
MemberDefImpl::IMPL::redefines
const MemberDef * redefines
Definition: memberdef.cpp:1160
qsnprintf
#define qsnprintf
Definition: qcstring.h:57
MemberDefImpl::isOverride
virtual bool isOverride() const
Definition: memberdef.cpp:5043
MemberDefImpl::IMPL::groupMember
MemberDef * groupMember
Definition: memberdef.cpp:1219
OutputList::startMemberDescription
void startMemberDescription(const QCString &anchor, const QCString &inheritId=QCString(), bool typ=false)
Definition: outputlist.h:306
MemberDefImpl::IMPL::declArgList
ArgumentList declArgList
Definition: memberdef.cpp:1196
MemberDefImpl::IMPL::defTmpArgLists
ArgumentLists defTmpArgLists
Definition: memberdef.cpp:1201
MemberDefImpl::IMPL::enumFields
MemberVector enumFields
Definition: memberdef.cpp:1158
MemberDefImpl::IMPL::read
QCString read
Definition: memberdef.cpp:1180
MemberDefImpl::IMPL::init
void init(Definition *def, const QCString &t, const QCString &a, const QCString &e, Protection p, Specifier v, bool s, Relationship r, MemberType mt, const ArgumentList &tal, const ArgumentList &al, const QCString &meta)
Definition: memberdef.cpp:1279
OutputList::startLabels
void startLabels()
Definition: outputlist.h:472
writeMarkerList
void writeMarkerList(OutputList &ol, const std::string &markerText, size_t numMarkers, std::function< void(size_t)> replaceFunc)
Definition: util.cpp:1096
MemberVector::end
iterator end()
Definition: memberlist.h:44
Entry::Override
static const uint64 Override
Definition: entry.h:159
MemberDefImpl::isGettable
virtual bool isGettable() const
Definition: memberdef.cpp:4973
DefinitionMixin< MemberDefMutable >::hasSourceReffedBy
virtual bool hasSourceReffedBy() const
Definition: definitionimpl.h:250
NamespaceDef::getOutputFileBase
virtual QCString getOutputFileBase() const =0
stripAnonymousNamespaceScope
QCString stripAnonymousNamespaceScope(const QCString &s)
Definition: util.cpp:235
MemberDefImpl::isSignal
virtual bool isSignal() const
Definition: memberdef.cpp:4868
MemberDefImpl::IMPL::declLine
int declLine
Definition: memberdef.cpp:1266
Entry::Weak
static const uint64 Weak
Definition: entry.h:170
toGroupDef
GroupDef * toGroupDef(Definition *d)
Definition: groupdef.cpp:1766
MemberDefImpl::writeLink
virtual void writeLink(OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, bool onlyText=FALSE) const
Definition: memberdef.cpp:1769
OutputList::startAnonTypeScope
void startAnonTypeScope(int i1)
Definition: outputlist.h:205
MemberDefImpl::IMPL::redefinedBy
MemberVector redefinedBy
Definition: memberdef.cpp:1161
MemberType_Variable
@ MemberType_Variable
Definition: types.h:278
MemberDefImpl::isRetain
virtual bool isRetain() const
Definition: memberdef.cpp:5083
MemberDefImpl::hasExamples
virtual bool hasExamples() const
Definition: memberdef.cpp:1512
ClassDefMutable
Definition: classdef.h:384
MemberDefImpl::IMPL::groupHasDocs
bool groupHasDocs
Definition: memberdef.cpp:1259
toMemberDefMutable
MemberDefMutable * toMemberDefMutable(Definition *d)
Definition: memberdef.cpp:6125
OutputList::endMemberDeclaration
void endMemberDeclaration(const QCString &anchor, const QCString &inheritId)
Definition: outputlist.h:312
Entry::Initonly
static const uint64 Initonly
Definition: entry.h:162
FileDef::anchor
virtual QCString anchor() const =0
Normal
@ Normal
Definition: types.h:29
MemberDefImpl::isObjCMethod
virtual bool isObjCMethod() const
Definition: memberdef.cpp:4694
MemberDefImpl::IMPL::examples
ExampleList examples
Definition: memberdef.cpp:1167
MemberDefImpl::isExplicit
virtual bool isExplicit() const
Definition: memberdef.cpp:4963
ContextTreeType::Example
@ Example
CodeSymbolType::Friend
@ Friend
MemberDefImpl::IMPL::bitfields
QCString bitfields
Definition: memberdef.cpp:1179
DefinitionMixin< MemberDefMutable >::setDefFile
virtual void setDefFile(const QCString &df, int defLine, int defColumn)
Definition: definitionimpl.h:206
MemberDefImpl::isLinkable
virtual bool isLinkable() const
Definition: memberdef.cpp:1751
MemberDef::briefDescription
virtual QCString briefDescription(bool abbr=FALSE) const =0
Definition
The common base class of all entity definitions found in the sources.
Definition: definition.h:76
MemberDef::documentation
virtual QCString documentation() const =0
ClassDef::categoryOf
virtual ClassDef * categoryOf() const =0
Returns the class of which this is a category (Objective-C only)
DefinitionMixin< MemberDefMutable >::xrefListItems
virtual const RefItemVector & xrefListItems() const
Definition: definitionimpl.h:192
OutputList::startDoxyAnchor
void startDoxyAnchor(const QCString &fName, const QCString &manName, const QCString &anchor, const QCString &name, const QCString &args)
Definition: outputlist.h:264
MemberDefImpl::IMPL::defArgList
ArgumentList defArgList
Definition: memberdef.cpp:1195
CodeSymbolType::Variable
@ Variable
MemberDefImpl::IMPL::write
QCString write
Definition: memberdef.cpp:1181
writeDefArgumentList
static bool writeDefArgumentList(OutputList &ol, const Definition *scope, const MemberDef *md)
Definition: memberdef.cpp:857
NamespaceDef
An abstract interface of a namespace symbol.
Definition: namespacedef.h:54
OutputList::endDoxyAnchor
void endDoxyAnchor(const QCString &fn, const QCString &anchor)
Definition: outputlist.h:268
MemberType_EnumValue
@ MemberType_EnumValue
Definition: types.h:281
g_cachedAnonymousTypeMutex
static std::mutex g_cachedAnonymousTypeMutex
Definition: memberdef.cpp:1822
Private
@ Private
Definition: types.h:26
MemberDefImpl::isBriefSectionVisible
virtual bool isBriefSectionVisible() const
Definition: memberdef.cpp:1881
MemberType_Signal
@ MemberType_Signal
Definition: types.h:282
OutputList::docify
void docify(const QCString &s)
Definition: outputlist.h:137
OutputList::endDescTableTitle
void endDescTableTitle()
Definition: outputlist.h:381
Entry::Retain
static const uint64 Retain
Definition: entry.h:167
MemberDefImpl::IMPL::grpId
int grpId
Definition: memberdef.cpp:1213
MemberDefImpl::IMPL::hasReferencesRelation
bool hasReferencesRelation
Definition: memberdef.cpp:1256
DefinitionMixin< MemberDefMutable >::writeDocAnchorsToTagFile
virtual void writeDocAnchorsToTagFile(TextStream &fs) const
Definition: definitionimpl.h:268
MemberDefImpl::isBound
virtual bool isBound() const
Definition: memberdef.cpp:5150
VhdlDocGen::writeVHDLTypeDocumentation
static bool writeVHDLTypeDocumentation(const MemberDef *mdef, const Definition *d, OutputList &ol)
Definition: vhdldocgen.cpp:1618
MemberDefImpl::isFriendToHide
virtual bool isFriendToHide() const
Definition: memberdef.cpp:5981
substituteTemplateArgumentsInString
QCString substituteTemplateArgumentsInString(const QCString &nm, const ArgumentList &formalArgs, const std::unique_ptr< ArgumentList > &actualArgs)
Definition: util.cpp:4477
OutputList::startInlineMemberType
void startInlineMemberType()
Definition: outputlist.h:459
MemberDefImpl::IMPL::hasCallerGraph
bool hasCallerGraph
Definition: memberdef.cpp:1254
MemberDef::getGroupPri
virtual Grouping::GroupPri_t getGroupPri() const =0
QCString::length
uint length() const
Returns the length of the string, not counting the 0-terminator.
Definition: qcstring.h:147
Entry::Unretained
static const uint64 Unretained
Definition: entry.h:171
MemberDefImpl::IMPL::classDef
const ClassDef * classDef
Definition: memberdef.cpp:1151
MemberDefImpl::isLinkableInProject
virtual bool isLinkableInProject() const
Definition: memberdef.cpp:1740
MemberDefImpl::IMPL::implOnly
bool implOnly
Definition: memberdef.cpp:1238
Entry::Readonly
static const uint64 Readonly
Definition: entry.h:179
Entry::Assign
static const uint64 Assign
Definition: entry.h:168
ArgumentList
This class represents an function or template argument list.
Definition: arguments.h:59
MemberDef::writeEnumDeclaration
virtual void writeEnumDeclaration(OutputList &typeDecl, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd) const =0
MemberDef::getGroupFileName
virtual QCString getGroupFileName() const =0
OutputList::endMemberDescription
void endMemberDescription()
Definition: outputlist.h:308
ClassDef::compoundTypeString
virtual QCString compoundTypeString() const =0
Returns the type of compound as a string
MemberType_Interface
@ MemberType_Interface
Definition: types.h:288
MemberDefImpl::argumentList
virtual const ArgumentList & argumentList() const
Definition: memberdef.cpp:5265
CodeSymbolType::Property
@ Property
Translator::trCallGraph
virtual QCString trCallGraph()=0
MemberDefImpl::isUNOProperty
virtual bool isUNOProperty() const
Definition: memberdef.cpp:5140
QCString::findRev
int findRev(char c, int index=-1, bool cs=TRUE) const
Definition: qcstring.cpp:86
SrcLangExt_PHP
@ SrcLangExt_PHP
Definition: types.h:48
VhdlDocGen::writeSource
static void writeSource(const MemberDefMutable *mdef, OutputList &ol, const QCString &cname)
Definition: vhdldocgen.cpp:2191
DefinitionMixin< MemberDefMutable >::docFile
virtual QCString docFile() const
Definition: definitionimpl.h:164
QCString::isEmpty
bool isEmpty() const
Returns TRUE iff the string is empty
Definition: qcstring.h:144
MemberDefImpl::setDeclFile
virtual void setDeclFile(const QCString &df, int line, int column)
Definition: memberdef.cpp:5607
reg::match
bool match(const std::string &str, Match &match, const Ex &re)
Matches a given string str for a match against regular expression re.
Definition: regex.cpp:729
MemberDefImpl::getFileDef
virtual const FileDef * getFileDef() const
Definition: memberdef.cpp:4813
MemberDefImpl::setAnonymousUsed
virtual void setAnonymousUsed() const
Definition: memberdef.cpp:5358
MemberDefImpl::qualifiedName
virtual QCString qualifiedName() const
Definition: memberdef.cpp:4706
OutputList::startBold
void startBold()
Definition: outputlist.h:302
OutputList::writeLabel
void writeLabel(const QCString &l, bool isLast)
Definition: outputlist.h:474
MemberDefImpl::getClassDefOfAnonymousType
virtual ClassDef * getClassDefOfAnonymousType() const
Definition: memberdef.cpp:1827
Entry::Property
static const uint64 Property
Definition: entry.h:178
Entry::Final
static const uint64 Final
Definition: entry.h:154
MemberDefImpl::IMPL::memSpec
uint64 memSpec
Definition: memberdef.cpp:1189
MemberDefImpl::isVariable
virtual bool isVariable() const
Definition: memberdef.cpp:4878
OutputList::endMemberDocPrefixItem
void endMemberDocPrefixItem()
Definition: outputlist.h:417
OutputList::writeString
void writeString(const QCString &text)
Definition: outputlist.h:111
MemberDefImpl::argsString
virtual QCString argsString() const
Definition: memberdef.cpp:4778
MemberDefImpl::isReadable
virtual bool isReadable() const
Definition: memberdef.cpp:5018
OutputList::insertMemberAlign
void insertMemberAlign(bool templ=FALSE)
Definition: outputlist.h:233
MemberDefImpl::getAnonymousEnumType
virtual const MemberDef * getAnonymousEnumType() const
Definition: memberdef.cpp:5220
MemberGroup::header
QCString header() const
Definition: membergroup.h:48
MemberDefImpl::isAssign
virtual bool isAssign() const
Definition: memberdef.cpp:5078
TextGeneratorOLImpl
Implements TextGeneratorIntf for an OutputDocInterface stream.
Definition: util.h:72
MemberDefImpl::IMPL::metaData
QCString metaData
Definition: memberdef.cpp:1204
MemberDefImpl::isConstrained
virtual bool isConstrained() const
Definition: memberdef.cpp:5155
DefinitionMixin< MemberDefMutable >::getDefLine
virtual int getDefLine() const
Definition: definitionimpl.h:174
MemberDefImpl::isSealed
virtual bool isSealed() const
Definition: memberdef.cpp:5038
ClassDef::Interface
@ Interface
Definition: classdef.h:110
CodeSymbolType::Package
@ Package
MemberDefImpl::isUnretained
virtual bool isUnretained() const
Definition: memberdef.cpp:5110
MemberDefImpl::IMPL::cachedResolvedType
QCString cachedResolvedType
Definition: memberdef.cpp:1224
MemberVector::push_back
void push_back(const MemberDef *md)
Definition: memberlist.h:42
MemberDefImpl::IMPL::hasReferencedByRelation
bool hasReferencedByRelation
Definition: memberdef.cpp:1255
MemberDefImpl::isReadonly
virtual bool isReadonly() const
Definition: memberdef.cpp:5145
DefinitionMixin< MemberDefMutable >::id
virtual QCString id() const
Definition: definitionimpl.h:200
CodeSymbolType::Slot
@ Slot
SrcLangExt
SrcLangExt
Language as given by extension
Definition: types.h:41
MemberType_Friend
@ MemberType_Friend
Definition: types.h:284
MemberDefImpl::isSlot
virtual bool isSlot() const
Definition: memberdef.cpp:4873
MemberDefMutable::setAnonymousUsed
virtual void setAnonymousUsed() const =0
Doxygen::globalScope
static NamespaceDefMutable * globalScope
Definition: doxygen.h:102
MemberDefImpl::IMPL::cachedAnonymousType
ClassDef * cachedAnonymousType
Definition: memberdef.cpp:1206
MemberType_Enumeration
@ MemberType_Enumeration
Definition: types.h:280
MemberDefImpl::fieldType
virtual QCString fieldType() const
Definition: memberdef.cpp:3713
MemberDefImpl::isMaybeDefault
virtual bool isMaybeDefault() const
Definition: memberdef.cpp:5170
DefinitionMixin< MemberDefMutable >::getOuterScope
virtual Definition * getOuterScope() const
Definition: definitionimpl.h:194
MemberDefImpl::_writeReimplementedBy
void _writeReimplementedBy(OutputList &ol) const
Definition: memberdef.cpp:2869
writeTypeConstraints
void writeTypeConstraints(OutputList &ol, const Definition *d, const ArgumentList &al)
Definition: util.cpp:6073
MemberDefImpl::IMPL::initializer
QCString initializer
Definition: memberdef.cpp:1183
MemberDefImpl::isOptional
virtual bool isOptional() const
Definition: memberdef.cpp:5058
Virtual
@ Virtual
Definition: types.h:29
QCString::str
std::string str() const
Definition: qcstring.h:442
MemberDefImpl::IMPL::tArgList
ArgumentList tArgList
Definition: memberdef.cpp:1198
MemberType_Typedef
@ MemberType_Typedef
Definition: types.h:279
Specifier
Specifier
Virtualness of a member.
Definition: types.h:29
ClassDef::isLinkableInProject
virtual bool isLinkableInProject() const =0
returns TRUE iff a link is possible to this item within this project.
OutputList::startMemberTemplateParams
void startMemberTemplateParams()
Definition: outputlist.h:213
Entry::Settable
static const uint64 Settable
Definition: entry.h:150
Definition::TypeGroup
@ TypeGroup
Definition: definition.h:91
warn_doc_error
void warn_doc_error(const QCString &file, int line, const char *fmt,...)
Definition: message.cpp:186
MemberDefImpl::IMPL::annMemb
MemberDef * annMemb
Definition: memberdef.cpp:1193
ArgumentList::hasDocumentation
bool hasDocumentation() const
Definition: arguments.cpp:21
Public
@ Public
Definition: types.h:26
DefinitionMixin< MemberDefMutable >::hasSources
virtual bool hasSources() const
Definition: definitionimpl.h:198
SrcLangExt_Lex
@ SrcLangExt_Lex
Definition: types.h:60
DefinitionMixin< MemberDefMutable >::getLanguage
virtual SrcLangExt getLanguage() const
Definition: definitionimpl.h:189
Entry::Sealed
static const uint64 Sealed
Definition: entry.h:161
Translator::trEnumerationValues
virtual QCString trEnumerationValues()=0
MemberDefImpl::protection
virtual Protection protection() const
Definition: memberdef.cpp:4858
OutputList::startDescTableRow
void startDescTableRow()
Definition: outputlist.h:375
Doxygen::parseSourcesNeeded
static bool parseSourcesNeeded
Definition: doxygen.h:104
FileDef::isLinkableInProject
virtual bool isLinkableInProject() const =0
OutputList::addIndexItem
void addIndexItem(const QCString &s1, const QCString &s2)
Definition: outputlist.h:335
err
void err(const char *fmt,...)
Definition: message.cpp:203
SrcLangExt_Java
@ SrcLangExt_Java
Definition: types.h:45
FileDef::isLinkable
virtual bool isLinkable() const =0
MemberDefImpl::getGroupDef
virtual const GroupDef * getGroupDef() const
Definition: memberdef.cpp:4833
OutputList::endLabels
void endLabels()
Definition: outputlist.h:476
MemberDefImpl::_writeGroupInclude
void _writeGroupInclude(OutputList &ol, bool inGroup) const
Definition: memberdef.cpp:3149
QCString::at
char & at(size_t i)
Returns a reference to the character at index i.
Definition: qcstring.h:477
DefinitionMixin< MemberDefMutable >::name
virtual QCString name() const
Definition: definitionimpl.h:155
MemberDefImpl::isMutable
virtual bool isMutable() const
Definition: memberdef.cpp:4968
createMemberDef
MemberDefMutable * createMemberDef(const QCString &defFileName, int defLine, int defColumn, const QCString &type, const QCString &name, const QCString &args, const QCString &excp, Protection prot, Specifier virt, bool stat, Relationship related, MemberType t, const ArgumentList &tal, const ArgumentList &al, const QCString &metaData)
Factory method to create a new instance of a MemberDef
Definition: memberdef.cpp:373
DefinitionMixin< MemberDefMutable >::getDefFileName
virtual QCString getDefFileName() const
Definition: definitionimpl.h:172
MemberDefImpl::IMPL
Definition: memberdef.cpp:1140
QCString::find
int find(char c, int index=0, bool cs=TRUE) const
Definition: qcstring.cpp:38
MemberDefMutable::insertReimplementedBy
virtual void insertReimplementedBy(const MemberDef *md)=0
MemberDefImpl::MemberDefImpl
MemberDefImpl(const QCString &defFileName, int defLine, int defColumn, const QCString &type, const QCString &name, const QCString &args, const QCString &excp, Protection prot, Specifier virt, bool stat, Relationship related, MemberType t, const ArgumentList &tal, const ArgumentList &al, const QCString &metaData)
Definition: memberdef.cpp:1387
MemberDefImpl::isRequired
virtual bool isRequired() const
Definition: memberdef.cpp:5063
CodeSymbolType::Service
@ Service
MemberDefImpl::IMPL::type
QCString type
Definition: memberdef.cpp:1169
Entry::Default
static const uint64 Default
Definition: entry.h:174
MemberDefMutable
Definition: memberdef.h:296
MemberDefImpl::IMPL::userInitLines
int userInitLines
Definition: memberdef.cpp:1192
Entry::Copy
static const uint64 Copy
Definition: entry.h:166
getClass
ClassDef * getClass(const QCString &n)
Definition: classdef.cpp:4974
DefinitionMixin< MemberDefMutable >::briefLine
virtual int briefLine() const
Definition: definitionimpl.h:167
OutputList::endTypewriter
void endTypewriter()
Definition: outputlist.h:167
Entry::New
static const uint64 New
Definition: entry.h:160
ClassDef::isSimple
virtual bool isSimple() const =0
MemberDefImpl::getOutputFileBase
virtual QCString getOutputFileBase() const
Definition: memberdef.cpp:1517
ArgumentList::end
iterator end()
Definition: arguments.h:87
GroupDef::isLinkableInProject
virtual bool isLinkableInProject() const =0
FileDef::docName
virtual const QCString & docName() const =0
MemberDefImpl::memberTypeName
virtual QCString memberTypeName() const
Definition: memberdef.cpp:3828
DefinitionMixin< MemberDefMutable >::hasBriefDescription
virtual bool hasBriefDescription() const
Definition: definitionimpl.h:199
OutputList::writeDoc
void writeDoc(DocRoot *root, const Definition *ctx, const MemberDef *md, int id=0)
Definition: outputlist.cpp:169
MemberDef::getReference
virtual QCString getReference() const =0
MemberDefImpl::getNamespaceDef
virtual const NamespaceDef * getNamespaceDef() const
Definition: memberdef.cpp:4818
MemberDefImpl::isMaybeAmbiguous
virtual bool isMaybeAmbiguous() const
Definition: memberdef.cpp:5175
Translator::trGlobal
virtual QCString trGlobal(bool first_capital, bool singular)=0
CodeSymbolType::Typedef
@ Typedef
MemberDefImpl::IMPL::livesInsideEnum
bool livesInsideEnum
Definition: memberdef.cpp:1156
MemberDefImpl::definition
virtual QCString definition() const
Definition: memberdef.cpp:4763
protectionLevelVisible
bool protectionLevelVisible(Protection prot)
Definition: util.cpp:6585
warn
void warn(const QCString &file, int line, const char *fmt,...)
Definition: message.cpp:151
Translator::trImplementedFromList
virtual QCString trImplementedFromList(int numEntries)=0
Entry::Alias
static const uint64 Alias
Definition: entry.h:172
MemberDefImpl::IMPL::memDef
MemberDef * memDef
Definition: memberdef.cpp:1163
ArgumentList::begin
iterator begin()
Definition: arguments.h:86
ArgumentList::hasParameters
bool hasParameters() const
Definition: arguments.h:69
MemberDefImpl::_computeIsConstructor
void _computeIsConstructor()
Definition: memberdef.cpp:4400
OutputList::startTypewriter
void startTypewriter()
Definition: outputlist.h:165
MemberDefImpl::isRelated
virtual bool isRelated() const
Definition: memberdef.cpp:4943
DefinitionMixin< MemberDefMutable >::inbodyLine
virtual int inbodyLine() const
Definition: definitionimpl.h:170
CodeSymbolType::Event
@ Event
MemberDefImpl::IMPL::annEnumType
const MemberDef * annEnumType
Definition: memberdef.cpp:1157
Entry::PrivateGettable
static const uint64 PrivateGettable
Definition: entry.h:143
Translator::trReimplementedInList
virtual QCString trReimplementedInList(int numEntries)=0
Entry::Required
static const uint64 Required
Definition: entry.h:164
Entry::MaybeDefault
static const uint64 MaybeDefault
Definition: entry.h:184
end
DirIterator end(const DirIterator &) noexcept
Definition: dir.cpp:128
MemberDefImpl::isDefault
virtual bool isDefault() const
Definition: memberdef.cpp:5120
MemberDefImpl::IMPL::prot
Protection prot
Definition: memberdef.cpp:1176
MemberDefImpl::getLabels
virtual StringVector getLabels(const Definition *container) const
Definition: memberdef.cpp:2613
MemberDefImpl::isDeleted
virtual bool isDeleted() const
Definition: memberdef.cpp:4058
QCString::contains
int contains(char c, bool cs=TRUE) const
Definition: qcstring.cpp:138
DefinitionMixin< MemberDefMutable >::isHidden
virtual bool isHidden() const
Definition: definitionimpl.h:180
CodeSymbolType::DCOP
@ DCOP
MemberDef::isLinkable
virtual bool isLinkable() const =0
OutputGenerator::RTF
@ RTF
Definition: outputgen.h:333
MemberDefImpl::memberType
virtual MemberType memberType() const
Definition: memberdef.cpp:4863
MemberDef::isBriefSectionVisible
virtual bool isBriefSectionVisible() const =0
GroupDef
A model of a group of symbols.
Definition: groupdef.h:49
MemberDefImpl::isForeign
virtual bool isForeign() const
Definition: memberdef.cpp:4948
DefinitionMutable::setBodyDef
virtual void setBodyDef(const FileDef *fd)=0
MemberDefImpl::isRemovable
virtual bool isRemovable() const
Definition: memberdef.cpp:5008
MemberDefImpl::_computeIsDestructor
void _computeIsDestructor()
Definition: memberdef.cpp:4450
MemberType_Service
@ MemberType_Service
Definition: types.h:289
MemberDefImpl::IMPL::accessorClass
ClassDef * accessorClass
Definition: memberdef.cpp:1171
Argument::type
QCString type
Definition: arguments.h:50
DefinitionMixin::qualifiedName
virtual QCString qualifiedName() const
Definition: definitionimpl.h:158
MemberDefImpl::IMPL::explExt
bool explExt
Definition: memberdef.cpp:1257
MemberDefImpl::_writeCategoryRelation
void _writeCategoryRelation(OutputList &ol) const
Definition: memberdef.cpp:2928
Entry::Optional
static const uint64 Optional
Definition: entry.h:163
NamespaceDef::isLinkableInProject
virtual bool isLinkableInProject() const =0
uint
unsigned uint
Definition: qcstring.h:40
MemberDefImpl::IMPL::memDec
MemberDef * memDec
Definition: memberdef.cpp:1164
MemberDefImpl
Definition: memberdef.cpp:51
MemberDefImpl::m_impl
IMPL * m_impl
Definition: memberdef.cpp:379
MemberDef::anchor
virtual QCString anchor() const =0
OutputList::disableAll
void disableAll()
Definition: outputlist.cpp:92
MemberDefImpl::isTransient
virtual bool isTransient() const
Definition: memberdef.cpp:5160
MemberDefImpl::documentation
virtual QCString documentation() const
Definition: memberdef.cpp:5964
OutputList::startMemberDocName
void startMemberDocName(bool align)
Definition: outputlist.h:419
addHtmlExtensionIfMissing
QCString addHtmlExtensionIfMissing(const QCString &fName)
Definition: util.cpp:5275
MemberType_Function
@ MemberType_Function
Definition: types.h:277
MemberDefImpl::IMPL::declFileName
QCString declFileName
Definition: memberdef.cpp:1265
OutputList::endDescTableData
void endDescTableData()
Definition: outputlist.h:385
MemberDef
A model of a class/file/namespace member symbol.
Definition: memberdef.h:45
OutputList::writeChar
void writeChar(char c)
Definition: outputlist.h:256
warn_uncond
void warn_uncond(const char *fmt,...)
Definition: message.cpp:194
DefinitionMixin< MemberDefMutable >::writeSourceDef
virtual void writeSourceDef(OutputList &ol, const QCString &scopeName) const
Definition: definitionimpl.h:244
CodeSymbolType::Dictionary
@ Dictionary
DefinitionMixin< MemberDefMutable >::writeInlineCode
virtual void writeInlineCode(OutputList &ol, const QCString &scopeName) const
Definition: definitionimpl.h:246
OutputGenerator::Latex
@ Latex
Definition: outputgen.h:333
DefinitionMixin::briefDescription
virtual QCString briefDescription(bool abbreviate=FALSE) const
Definition: definitionimpl.h:165
Entry::Raisable
static const uint64 Raisable
Definition: entry.h:158
Definition::TypeNamespace
@ TypeNamespace
Definition: definition.h:89
ClassDef
A abstract class representing of a compound symbol.
Definition: classdef.h:103
MemberType_Slot
@ MemberType_Slot
Definition: types.h:283
Config_getInt
#define Config_getInt(name)
Definition: config.h:34
reg::isspace
static bool isspace(char c)
Definition: regex.cpp:33
MemberVector::inSort
void inSort(const MemberDef *md)
Definition: memberlist.h:62
MemberDefImpl::isImplementation
virtual bool isImplementation() const
Definition: memberdef.cpp:5186
MemberDefImpl::isNoExcept
virtual bool isNoExcept() const
Definition: memberdef.cpp:5130
OutputList::startMemberItem
void startMemberItem(const QCString &anchor, int i1, const QCString &id=QCString())
Definition: outputlist.h:209
MemberDefImpl::IMPL::maxInitLines
int maxInitLines
Definition: memberdef.cpp:1191
OutputList::disable
void disable(OutputGenerator::OutputType o)
Definition: outputlist.cpp:100
uchar
unsigned char uchar
Definition: qcstring.h:38
MemberDefImpl::isPrivateGettable
virtual bool isPrivateGettable() const
Definition: memberdef.cpp:4978
isId
bool isId(int c)
Definition: util.h:172
Translator::trExtendsClass
virtual QCString trExtendsClass()=0
MemberDefImpl::IMPL::templateMaster
const MemberDef * templateMaster
Definition: memberdef.cpp:1200
QCString::left
QCString left(size_t len) const
Definition: qcstring.h:212
Entry::Inline
static const uint64 Inline
Definition: entry.h:147
MemberDefImpl::IMPL::group
const GroupDef * group
Definition: memberdef.cpp:1215
Entry::Constrained
static const uint64 Constrained
Definition: entry.h:181
MemberDefImpl::isNonAtomic
virtual bool isNonAtomic() const
Definition: memberdef.cpp:5068
MemberDefImpl::warnIfUndocumented
virtual void warnIfUndocumented() const
Definition: memberdef.cpp:3852
MemberDefImpl::_writeEnumValues
void _writeEnumValues(OutputList &ol, const Definition *container, const QCString &cfname, const QCString &ciname, const QCString &cname) const
Definition: memberdef.cpp:3002
MemberDef::virtualness
virtual Specifier virtualness(int count=0) const =0
MemberDefImpl::_writeExamples
void _writeExamples(OutputList &ol) const
Definition: memberdef.cpp:2981
DefinitionMixin< MemberDefMutable >::inbodyDocumentation
virtual QCString inbodyDocumentation() const
Definition: definitionimpl.h:168
MemberDefImpl::setDefinitionTemplateParameterLists
virtual void setDefinitionTemplateParameterLists(const ArgumentLists &lists)
Definition: memberdef.cpp:1764
Doxygen::parserManager
static ParserManager * parserManager
Definition: doxygen.h:111
Definition::isAnonymous
virtual bool isAnonymous() const =0
ArgumentList::empty
bool empty() const
Definition: arguments.h:92
Translator::trMore
virtual QCString trMore()=0
MemberDefImpl::isFriendClass
virtual bool isFriendClass() const
Definition: memberdef.cpp:5991
ClassDef::getOutputFileBase
virtual QCString getOutputFileBase() const =0
Returns the unique base name (without extension) of the class's file on disk
DefinitionMixin< MemberDefMutable >::getStartBodyLine
virtual int getStartBodyLine() const
Definition: definitionimpl.h:186
MemberDefImpl::isFunction
virtual bool isFunction() const
Definition: memberdef.cpp:4908
MemberDef::getGroupHasDocs
virtual bool getGroupHasDocs() const =0
MemberDefImpl::isObjCProperty
virtual bool isObjCProperty() const
Definition: memberdef.cpp:4700
Definition::TypeFile
@ TypeFile
Definition: definition.h:88
Entry::ConstExpr
static const uint64 ConstExpr
Definition: entry.h:142
DotCallGraph
Representation of an call graph
Definition: dotcallgraph.h:26
MemberDef::isReference
virtual bool isReference() const =0
Entry::MaybeVoid
static const uint64 MaybeVoid
Definition: entry.h:183
QCString::simplifyWhiteSpace
QCString simplifyWhiteSpace() const
return a copy of this string with leading and trailing whitespace removed and multiple whitespace cha...
Definition: qcstring.cpp:180
MemberDefImpl::isWritable
virtual bool isWritable() const
Definition: memberdef.cpp:5023
removeRedundantWhiteSpace
QCString removeRedundantWhiteSpace(const QCString &s)
Definition: util.cpp:544
MemberDefImpl::m_isConstructorCached
uchar m_isConstructorCached
Definition: memberdef.cpp:382
NamespaceDef::displayName
virtual QCString displayName(bool=TRUE) const =0
MemberDefImpl::IMPL::relatedAlso
ClassDef * relatedAlso
Definition: memberdef.cpp:1165
OutputList::lineBreak
void lineBreak(const QCString &style=QCString())
Definition: outputlist.h:300
theTranslator
Translator * theTranslator
Definition: language.cpp:156
Definition::displayName
virtual QCString displayName(bool includeScope=TRUE) const =0
MemberDefImpl::isAddable
virtual bool isAddable() const
Definition: memberdef.cpp:5003
MemberDefImpl::enumFieldList
virtual const MemberVector & enumFieldList() const
Definition: memberdef.cpp:5250
MemberDefImpl::IMPL::hasDocumentedReturnType
bool hasDocumentedReturnType
Definition: memberdef.cpp:1241
Definition::name
virtual QCString name() const =0
Entry::Abstract
static const uint64 Abstract
Definition: entry.h:155
ClassDef::isObjectiveC
virtual bool isObjectiveC() const =0
Returns TRUE if this class is implemented in Objective-C
SrcLangExt_Cpp
@ SrcLangExt_Cpp
Definition: types.h:50
invalidateCachedTypesInArgumentList
static void invalidateCachedTypesInArgumentList(ArgumentList &al)
Definition: memberdef.cpp:5755
MemberType_DCOP
@ MemberType_DCOP
Definition: types.h:285
MemberDefImpl::livesInsideEnum
virtual bool livesInsideEnum() const
Definition: memberdef.cpp:5235
Argument
This class contains the information about the argument of a function or template
Definition: arguments.h:26
DefinitionMixin< MemberDefMutable >::getEndBodyLine
virtual int getEndBodyLine() const
Definition: definitionimpl.h:187
MemberDefImpl::isAbstract
virtual bool isAbstract() const
Definition: memberdef.cpp:5053
MemberDef::getClassDef
virtual const ClassDef * getClassDef() const =0
MemberDefImpl::isExternal
virtual bool isExternal() const
Definition: memberdef.cpp:5191
Entry::Explicit
static const uint64 Explicit
Definition: entry.h:148
DefinitionMixin::setBriefDescription
virtual void setBriefDescription(const QCString &brief, const QCString &briefFile, int briefLine)
Definition: definitionimpl.h:210
extractDirection
QCString extractDirection(QCString &docs)
Strip the direction part from docs and return it as a string in canonical form The input docs string ...
Definition: util.cpp:6801
SrcLangExt_Python
@ SrcLangExt_Python
Definition: types.h:52
Translator::trProvidedByCategory
virtual QCString trProvidedByCategory()=0
MemberDefImpl::IMPL::enumBaseType
QCString enumBaseType
Definition: memberdef.cpp:1185
MemberDefImpl::isEnumStruct
virtual bool isEnumStruct() const
Definition: memberdef.cpp:5098
validatingParseDoc
DocRoot * validatingParseDoc(IDocParser &parserIntf, const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &input, bool indexWords, bool isExample, const QCString &exampleName, bool singleLine, bool linkFromIndex, bool markdownSupport)
Definition: docparser.cpp:7495
MemberDefImpl::isSettable
virtual bool isSettable() const
Definition: memberdef.cpp:4988
MemberDef::hasDocumentation
virtual bool hasDocumentation() const =0
MemberDefImpl::getReference
virtual QCString getReference() const
Definition: memberdef.cpp:1581
ClassDef::getTemplateParameterLists
virtual ArgumentLists getTemplateParameterLists() const =0
Returns the template parameter lists that form the template declaration of this class.
MemberDefImpl::IMPL::annUsed
bool annUsed
Definition: memberdef.cpp:1249
Translator::trVhdlType
virtual QCString trVhdlType(uint64 type, bool single)=0
Doxygen::memberGroupInfoMap
static MemberGroupInfoMap memberGroupInfoMap
Definition: doxygen.h:100
DefinitionMixin< MemberDefMutable >::getDefColumn
virtual int getDefColumn() const
Definition: definitionimpl.h:175
warn_undoc
void warn_undoc(const QCString &file, int line, const char *fmt,...)
Definition: message.cpp:170
MemberDefImpl::templateMaster
virtual const MemberDef * templateMaster() const
Definition: memberdef.cpp:5409
getLanguageSpecificSeparator
QCString getLanguageSpecificSeparator(SrcLangExt lang, bool classScope)
Returns the scope separator to use given the programming language lang
Definition: util.cpp:6545
MemberDefImpl::IMPL::args
QCString args
Definition: memberdef.cpp:1172
ClassDef::isBaseClass
virtual bool isBaseClass(const ClassDef *bcd, bool followInstances, int level=0) const =0
Returns TRUE iff bcd is a direct or indirect base class of this class.
MemberDefImpl::isDocumentedFriendClass
virtual bool isDocumentedFriendClass() const
Definition: memberdef.cpp:4048
OutputList::endParagraph
void endParagraph()
Definition: outputlist.h:109
Entry::Removable
static const uint64 Removable
Definition: entry.h:157
OutputList::endAnonTypeScope
void endAnonTypeScope(int i1)
Definition: outputlist.h:207
OutputList::endMemberDocName
void endMemberDocName()
Definition: outputlist.h:421
reg::Match
Object representing the matching results.
Definition: regex.h:163
MemberDefImpl::IMPL::annScope
bool annScope
Definition: memberdef.cpp:1248
ParserManager::getCodeParser
std::unique_ptr< CodeParserInterface > getCodeParser(const QCString &extension)
Gets the interface to the parser associated with a given extension.
Definition: parserintf.h:217
linkifyText
void linkifyText(const TextGeneratorIntf &out, const Definition *scope, const FileDef *fileScope, const Definition *self, const QCString &text, bool autoBreak, bool external, bool keepSpaces, int indentLevel)
Definition: util.cpp:886
getLanguageFromFileName
SrcLangExt getLanguageFromFileName(const QCString &fileName, SrcLangExt defLang)
Definition: util.cpp:5574
Definition::briefDescription
virtual QCString briefDescription(bool abbreviate=FALSE) const =0
TRUE
#define TRUE
Definition: qcstring.h:36
MemberDefImpl::isReference
virtual bool isReference() const
Definition: memberdef.cpp:6014
MemberDefImpl::displayName
virtual QCString displayName(bool=TRUE) const
Definition: memberdef.cpp:5781
MemberVector
A vector of MemberDef object
Definition: memberlist.h:32
MemberDef::getNamespaceDef
virtual const NamespaceDef * getNamespaceDef() const =0
MemberDefImpl::warnIfUndocumentedParams
virtual void warnIfUndocumentedParams() const
Definition: memberdef.cpp:4021
OutputList::endParameterList
void endParameterList()
Definition: outputlist.h:433
MemberDefImpl::hasOneLineInitializer
virtual bool hasOneLineInitializer() const
Definition: memberdef.cpp:4207
Entry::Delete
static const uint64 Delete
Definition: entry.h:175
CodeSymbolType::Define
@ Define
MemberDefImpl::isTemplateSpecialization
virtual bool isTemplateSpecialization() const
Definition: memberdef.cpp:5196
DefinitionMixin::setDocumentation
virtual void setDocumentation(const QCString &doc, const QCString &docFile, int docLine, bool stripWhiteSpace=TRUE)
Definition: definitionimpl.h:208
MemberDefImpl::isWeak
virtual bool isWeak() const
Definition: memberdef.cpp:5088
SrcLangExt_Fortran
@ SrcLangExt_Fortran
Definition: types.h:53
MemberDefImpl::IMPL::groupAlias
const MemberDef * groupAlias
Definition: memberdef.cpp:1212
MemberDefImpl::reimplementedBy
virtual const MemberVector & reimplementedBy() const
Definition: memberdef.cpp:1477
Entry::ProtectedGettable
static const uint64 ProtectedGettable
Definition: entry.h:144
OutputList::endExamples
void endExamples()
Definition: outputlist.h:321
ArgumentList::front
Argument & front()
Definition: arguments.h:98
OutputList::endMemberItem
void endMemberItem()
Definition: outputlist.h:211
Entry::Gettable
static const uint64 Gettable
Definition: entry.h:151
MemberDef::reimplements
virtual const MemberDef * reimplements() const =0
OutputGenerator::Html
@ Html
Definition: outputgen.h:333
writeExamples
void writeExamples(OutputList &ol, const ExampleList &list)
Definition: util.cpp:1120
MemberDefImpl::isProtectedGettable
virtual bool isProtectedGettable() const
Definition: memberdef.cpp:4983
toClassDef
ClassDef * toClassDef(Definition *d)
Definition: classdef.cpp:4907
MemberDefImpl::IMPL::cachedTypedefTemplSpec
QCString cachedTypedefTemplSpec
Definition: memberdef.cpp:1223
Entry::MaybeAmbiguous
static const uint64 MaybeAmbiguous
Definition: entry.h:185
MemberDefImpl::isRaisable
virtual bool isRaisable() const
Definition: memberdef.cpp:5013
OutputList::enableAll
void enableAll()
Definition: outputlist.cpp:84
MemberDefImpl::hasReferencesRelation
virtual bool hasReferencesRelation() const
Definition: memberdef.cpp:5404
MemberDefImpl::m_isLinkableCached
uchar m_isLinkableCached
Definition: memberdef.cpp:381
OutputList::isEnabled
bool isEnabled(OutputGenerator::OutputType o)
Definition: outputlist.cpp:116
MemberDefImpl::IMPL::proto
bool proto
Definition: memberdef.cpp:1245
SrcLangExt_CSharp
@ SrcLangExt_CSharp
Definition: types.h:46
MemberDefImpl::IMPL::exception
QCString exception
Definition: memberdef.cpp:1182
MemberDef::isStrong
virtual bool isStrong() const =0
Translator::trReimplementedFromList
virtual QCString trReimplementedFromList(int numEntries)=0
DefinitionMixin::setHidden
virtual void setHidden(bool b)
Definition: definitionimpl.h:238
MemberDefImpl::IMPL::initLines
int initLines
Definition: memberdef.cpp:1187
OutputList::endInlineMemberName
void endInlineMemberName()
Definition: outputlist.h:465
Entry::Transient
static const uint64 Transient
Definition: entry.h:182
addRefItem
void addRefItem(const RefItemVector &sli, const QCString &key, const QCString &prefix, const QCString &name, const QCString &title, const QCString &args, const Definition *scope)
Definition: util.cpp:4880
DefinitionMixin< MemberDefMutable >::docLine
virtual int docLine() const
Definition: definitionimpl.h:163
MemberDefImpl::_computeLinkableInProject
void _computeLinkableInProject()
Definition: memberdef.cpp:1638
MemberDefImpl::IMPL::hasDocumentedParams
bool hasDocumentedParams
Definition: memberdef.cpp:1240
Definition::TypeClass
@ TypeClass
Definition: definition.h:87
MemberDefImpl::IMPL::declColumn
int declColumn
Definition: memberdef.cpp:1267
Definition::definitionType
virtual DefType definitionType() const =0
MemberDefImpl::IMPL::sectionMap
std::map< const Definition *, const MemberList * > sectionMap
Definition: memberdef.cpp:1210
MemberType_Property
@ MemberType_Property
Definition: types.h:286
DefinitionMixin< MemberDefMutable >::inbodyFile
virtual QCString inbodyFile() const
Definition: definitionimpl.h:169
OutputList::popGeneratorState
void popGeneratorState()
Definition: outputlist.cpp:134
OutputGenerator::Docbook
@ Docbook
Definition: outputgen.h:333
MemberDef::hasOneLineInitializer
virtual bool hasOneLineInitializer() const =0
MemberDefImpl::IMPL::nspace
const NamespaceDef * nspace
Definition: memberdef.cpp:1153
OutputList::startTextLink
void startTextLink(const QCString &file, const QCString &anchor)
Definition: outputlist.h:152
OutputList::endMemberDoc
void endMemberDoc(bool hasArgs)
Definition: outputlist.h:262
OutputList::endCallGraph
void endCallGraph(DotCallGraph &g)
Definition: outputlist.h:397
MemberType_Dictionary
@ MemberType_Dictionary
Definition: types.h:291
Translator::trInitialValue
virtual QCString trInitialValue()=0
OutputList::startDescTableTitle
void startDescTableTitle()
Definition: outputlist.h:379
DefinitionMixin< MemberDefMutable >::isAnonymous
virtual bool isAnonymous() const
Definition: definitionimpl.h:156
DefinitionMixin< MemberDefMutable >::localName
virtual QCString localName() const
Definition: definitionimpl.h:157
MemberDefImpl::isDefine
virtual bool isDefine() const
Definition: memberdef.cpp:4918
ClassDef::compoundType
virtual CompoundType compoundType() const =0
Returns the type of compound this is, i.e.
MemberDefImpl::_isReimplements
bool _isReimplements() const
Definition: memberdef.cpp:2779
MemberDefImpl::hasReferencedByRelation
virtual bool hasReferencedByRelation() const
Definition: memberdef.cpp:5399
MemberDefImpl::IMPL::groupStartLine
int groupStartLine
Definition: memberdef.cpp:1218
MemberDefImpl::anchor
virtual QCString anchor() const
Definition: memberdef.cpp:1615
OutputList::endDescForItem
void endDescForItem()
Definition: outputlist.h:282
ArgumentList::size
size_t size() const
Definition: arguments.h:93
docFindSections
void docFindSections(const QCString &input, const Definition *d, const QCString &fileName)
Definition: docparser.cpp:7681
MemberDefImpl::isMaybeVoid
virtual bool isMaybeVoid() const
Definition: memberdef.cpp:5165
MemberDefImpl::isProtectedSettable
virtual bool isProtectedSettable() const
Definition: memberdef.cpp:4998
MemberDefImpl::IMPL::anc
QCString anc
Definition: memberdef.cpp:1174
Entry::ProtectedSettable
static const uint64 ProtectedSettable
Definition: entry.h:146
MemberDefImpl::isFriend
virtual bool isFriend() const
Definition: memberdef.cpp:4923
MemberDefImpl::IMPL::numberOfFlowKW
int numberOfFlowKW
Definition: memberdef.cpp:1268
OutputList::startCodeFragment
void startCodeFragment(const QCString &style)
Definition: outputlist.h:241
Definition::getReference
virtual QCString getReference() const =0
DefinitionMixin::documentation
virtual QCString documentation() const
Definition: definitionimpl.h:162
MemberDefImpl::isInitonly
virtual bool isInitonly() const
Definition: memberdef.cpp:5048
MemberListContainer::File
@ File
Entry::Readable
static const uint64 Readable
Definition: entry.h:152
MemberDefImpl::m_isDestructorCached
uchar m_isDestructorCached
Definition: memberdef.cpp:383
MemberDef::qualifiedName
virtual QCString qualifiedName() const =0
MemberDefImpl::hasDocumentation
virtual bool hasDocumentation() const
Definition: memberdef.cpp:4063
MemberDefImpl::IMPL::mtype
MemberType mtype
Definition: memberdef.cpp:1190
reAnonymous
static const reg::Ex reAnonymous(R"([\w:@]*@\d+)")
MemberDefImpl::excpString
virtual QCString excpString() const
Definition: memberdef.cpp:4783
Protected
@ Protected
Definition: types.h:26
OutputList::writeLatexSpacing
void writeLatexSpacing()
Definition: outputlist.h:270
DefinitionMixin< MemberDefMutable >::DefinitionMixin
DefinitionMixin(const QCString &defFileName, int defLine, int defColumn, const QCString &name, const char *b=0, const char *d=0, bool isSymbol=TRUE)
Definition: definitionimpl.h:146
QCString::mid
QCString mid(size_t index, size_t len=static_cast< size_t >(-1)) const
Definition: qcstring.h:224
substitute
QCString substitute(const QCString &s, const QCString &src, const QCString &dst)
substitute all occurrences of src in s by dst
Definition: qcstring.cpp:465
MemberDefImpl::isInline
virtual bool isInline() const
Definition: memberdef.cpp:4958
Argument::defval
QCString defval
Definition: arguments.h:54
MemberDef::isLinkableInProject
virtual bool isLinkableInProject() const =0
OutputList::writeNonBreakableSpace
void writeNonBreakableSpace(int num)
Definition: outputlist.h:369
Entry::Attribute
static const uint64 Attribute
Definition: entry.h:177
writePageRef
void writePageRef(OutputDocInterface &od, const QCString &cn, const QCString &mn)
Definition: util.cpp:264
RefItemVector
std::vector< RefItem * > RefItemVector
Definition: reflist.h:132
DotCallGraph::isTrivial
bool isTrivial() const
Definition: dotcallgraph.cpp:195
MemberDef::getOutputFileBase
virtual QCString getOutputFileBase() const =0
DefinitionMixin::setInbodyDocumentation
virtual void setInbodyDocumentation(const QCString &doc, const QCString &docFile, int docLine)
Definition: definitionimpl.h:212
Entry::Strong
static const uint64 Strong
Definition: entry.h:169
MemberDefImpl::declArgumentList
virtual const ArgumentList & declArgumentList() const
Definition: memberdef.cpp:5275
NamespaceDef::isLinkable
virtual bool isLinkable() const =0
QCString::remove
QCString & remove(size_t index, size_t len)
Definition: qcstring.h:354
Entry::Writable
static const uint64 Writable
Definition: entry.h:153
Config_getBool
#define Config_getBool(name)
Definition: config.h:33
MemberDefImpl::isAttribute
virtual bool isAttribute() const
Definition: memberdef.cpp:5135
OutputList::startDescTableData
void startDescTableData()
Definition: outputlist.h:383
MemberDefImpl::IMPL::decl
QCString decl
Definition: memberdef.cpp:1177
GroupDef::getOutputFileBase
virtual QCString getOutputFileBase() const =0
MemberDefImpl::isPrivateSettable
virtual bool isPrivateSettable() const
Definition: memberdef.cpp:4993
MemberDefImpl::IMPL::grouppri
Grouping::GroupPri_t grouppri
Definition: memberdef.cpp:1216
toNamespaceDef
NamespaceDef * toNamespaceDef(Definition *d)
Definition: namespacedef.cpp:1541
MemberDefImpl::IMPL::fileDef
const FileDef * fileDef
Definition: memberdef.cpp:1152
MemberDefImpl::initializer
virtual const QCString & initializer() const
Definition: memberdef.cpp:4793
ArgumentList::isDeleted
bool isDeleted() const
Definition: arguments.h:108
reg::Ex
Class representing a regular expression.
Definition: regex.h:48
ClassDef::getReference
virtual QCString getReference() const =0
If this class originated from a tagfile, this will return the tag file reference
MemberDef::displayName
virtual QCString displayName(bool=TRUE) const =0
msg
void msg(const char *fmt,...)
Definition: message.cpp:53
Entry::NonAtomic
static const uint64 NonAtomic
Definition: entry.h:165
Related
@ Related
Definition: types.h:38
MemberDefImpl::isTypedef
virtual bool isTypedef() const
Definition: memberdef.cpp:4893
MemberDefImpl::isStatic
virtual bool isStatic() const
Definition: memberdef.cpp:4953
Definition::documentation
virtual QCString documentation() const =0
MemberDef::declArgumentList
virtual const ArgumentList & declArgumentList() const =0
DefinitionMixin< MemberDefMutable >::writeSourceRefs
virtual void writeSourceRefs(OutputList &ol, const QCString &scopeName) const
Definition: definitionimpl.h:252
MemberType_Event
@ MemberType_Event
Definition: types.h:287
DefinitionMixin::hasDocumentation
virtual bool hasDocumentation() const
Definition: definitionimpl.h:176
DefinitionMixin< MemberDefMutable >::getBodyDef
virtual const FileDef * getBodyDef() const
Definition: definitionimpl.h:188
MemberDefImpl::IMPL::virt
Specifier virt
Definition: memberdef.cpp:1175
OutputList::startMemberDoc
void startMemberDoc(const QCString &clName, const QCString &memName, const QCString &anchor, const QCString &title, int memCount, int memTotal, bool showInline)
Definition: outputlist.h:258
MemberDefImpl::IMPL::docProvider
const MemberDef * docProvider
Definition: memberdef.cpp:1232
Translator::trImplementedInList
virtual QCString trImplementedInList(int numEntries)=0
MemberDefImpl::IMPL::stat
bool stat
Definition: memberdef.cpp:1244
OutputList::parseText
void parseText(const QCString &textStr)
Definition: outputlist.cpp:179
OutputList::startInlineMemberDoc
void startInlineMemberDoc()
Definition: outputlist.h:467
MemberDefImpl::isEnumValue
virtual bool isEnumValue() const
Definition: memberdef.cpp:4888
OutputList::endIndent
void endIndent()
Definition: outputlist.h:329
Entry::Addable
static const uint64 Addable
Definition: entry.h:156
Argument::docs
QCString docs
Definition: arguments.h:55
MemberType_Sequence
@ MemberType_Sequence
Definition: types.h:290
qPrint
const char * qPrint(const char *s)
Definition: qcstring.h:589
Entry::Bound
static const uint64 Bound
Definition: entry.h:180
SrcLangExt_IDL
@ SrcLangExt_IDL
Definition: types.h:44
stripTrailingReturn
static QCString stripTrailingReturn(const QCString &trailRet)
Definition: memberdef.cpp:3907
MemberDef::getFileDef
virtual const FileDef * getFileDef() const =0
MemberDefImpl::IMPL::categoryRelation
const MemberDef * categoryRelation
Definition: memberdef.cpp:1264
DefinitionMutable::setBodySegment
virtual void setBodySegment(int defLine, int bls, int ble)=0
MemberDefImpl::typeString
virtual QCString typeString() const
Definition: memberdef.cpp:4773
OutputList::endMemberTemplateParams
void endMemberTemplateParams(const QCString &anchor, const QCString &inheritId)
Definition: outputlist.h:215
OutputList::startInlineMemberName
void startInlineMemberName()
Definition: outputlist.h:463
MemberDefImpl::IMPL::groupFileName
QCString groupFileName
Definition: memberdef.cpp:1217
OutputList::startDescTable
void startDescTable(const QCString &title)
Definition: outputlist.h:371
OutputList::startIndent
void startIndent()
Definition: outputlist.h:327
OutputList::endDescTable
void endDescTable()
Definition: outputlist.h:373
Entry::Local
static const uint64 Local
Definition: entry.h:138
MemberDefImpl::isSliceLocal
virtual bool isSliceLocal() const
Definition: memberdef.cpp:5240
ClassDefMutable::writeDeclaration
virtual void writeDeclaration(OutputList &ol, const MemberDef *md, bool inGroup, int indentLevel, const ClassDef *inheritedFrom, const QCString &inheritId) const =0
MemberDefImpl::briefDescription
virtual QCString briefDescription(bool abbr=FALSE) const
Definition: memberdef.cpp:5952
OutputList::generateDoc
void generateDoc(const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &docStr, bool indexWords, bool isExample, const QCString &exampleName, bool singleLine, bool linkFromIndex, bool markdownSupport)
Definition: outputlist.cpp:142
OutputList::endInlineMemberType
void endInlineMemberType()
Definition: outputlist.h:461
OutputList::startMemberDocPrefixItem
void startMemberDocPrefixItem()
Definition: outputlist.h:415
Argument::name
QCString name
Definition: arguments.h:52
Translator::trDefineValue
virtual QCString trDefineValue()=0
MemberVector::contains
bool contains(const MemberDef *md)
Definition: memberlist.h:71
MemberDefImpl::hasMultiLineInitializer
virtual bool hasMultiLineInitializer() const
Definition: memberdef.cpp:4216
MemberDef::argumentList
virtual const ArgumentList & argumentList() const =0
NamespaceDef::compoundTypeString
virtual QCString compoundTypeString() const =0
MemberDefImpl::IMPL::category
ClassDef * category
Definition: memberdef.cpp:1263
CodeSymbolType::EnumValue
@ EnumValue
writeExceptionList
static void writeExceptionList(OutputList &ol, const ClassDef *cd, const MemberDef *md)
Definition: memberdef.cpp:1113
MemberDefImpl::isEvent
virtual bool isEvent() const
Definition: memberdef.cpp:4938
Entry::Mutable
static const uint64 Mutable
Definition: entry.h:149
removeAnonymousScopes
QCString removeAnonymousScopes(const QCString &str)
Definition: util.cpp:166
OutputList::startCallGraph
void startCallGraph()
Definition: outputlist.h:395
ClassDef::displayName
virtual QCString displayName(bool includeScope=TRUE) const =0
Returns the name as it is appears in the documentation
DefinitionMixin< MemberDefMutable >::hasSourceRefs
virtual bool hasSourceRefs() const
Definition: definitionimpl.h:248
ASSERT
#define ASSERT(x)
Definition: qcstring.h:44
OutputList::pushGeneratorState
void pushGeneratorState()
Definition: outputlist.cpp:126
QCString::data
const char * data() const
Returns a pointer to the contents of the string in the form of a 0-terminated C string
Definition: qcstring.h:153
Entry::EnumStruct
static const uint64 EnumStruct
Definition: entry.h:141
MemberDefImpl::virtualness
virtual Specifier virtualness(int count=0) const
Definition: memberdef.cpp:4305
convertToXML
QCString convertToXML(const QCString &s, bool keepEntities)
Definition: util.cpp:3948
ExampleList::inSort
bool inSort(const Example &ex)
Definition: example.h:39
FileDef
A model of a file symbol.
Definition: filedef.h:73
simplifyTypeForTable
static QCString simplifyTypeForTable(const QCString &s)
Definition: memberdef.cpp:3697
MemberDefImpl::IMPL::docsForDefinition
bool docsForDefinition
Definition: memberdef.cpp:1260
MemberDefImpl::_writeCallerGraph
void _writeCallerGraph(OutputList &ol) const
Definition: memberdef.cpp:2757
Entry::PrivateSettable
static const uint64 PrivateSettable
Definition: entry.h:145
MemberDefImpl::isProperty
virtual bool isProperty() const
Definition: memberdef.cpp:4933
MemberDefImpl::IMPL::def
QCString def
Definition: memberdef.cpp:1173
DefinitionMixin< MemberDefMutable >::setReference
virtual void setReference(const QCString &r)
Definition: definitionimpl.h:214
MemberDefImpl::isDocsForDefinition
virtual bool isDocsForDefinition() const
Definition: memberdef.cpp:5225
MemberDefImpl::IMPL::isTypedefValCached
bool isTypedefValCached
Definition: memberdef.cpp:1221
toFileDef
FileDef * toFileDef(Definition *d)
Definition: filedef.cpp:1778
MemberDefImpl::IMPL::detailedDescriptionCachedValue
bool detailedDescriptionCachedValue
Definition: memberdef.cpp:1251
MemberType_Define
@ MemberType_Define
Definition: types.h:276
CodeSymbolType::Sequence
@ Sequence
MemberDefImpl::IMPL::enumScope
const MemberDef * enumScope
Definition: memberdef.cpp:1155
SrcLangExt_VHDL
@ SrcLangExt_VHDL
Definition: types.h:54
MemberDefImpl::isStrong
virtual bool isStrong() const
Definition: memberdef.cpp:5093
OutputList::endDescTableRow
void endDescTableRow()
Definition: outputlist.h:377
MemberDefImpl::_hasVisibleCallGraph
bool _hasVisibleCallGraph() const
Definition: memberdef.cpp:5368
MemberVector::begin
iterator begin()
Definition: memberlist.h:43
MemberDef::getGroupStartLine
virtual int getGroupStartLine() const =0
MemberDefMutable::moveArgumentList
virtual void moveArgumentList(std::unique_ptr< ArgumentList > al)=0
Translator::trMember
virtual QCString trMember(bool first_capital, bool singular)=0
MemberDefImpl::IMPL::docEnumValues
bool docEnumValues
Definition: memberdef.cpp:1246
MemberDefImpl::reimplements
virtual const MemberDef * reimplements() const
Definition: memberdef.cpp:1472
stripExtension
QCString stripExtension(const QCString &fName)
Definition: util.cpp:5295
MemberDefImpl::isConstructor
virtual bool isConstructor() const
Definition: memberdef.cpp:4438
MemberListContainer::Group
@ Group
CodeSymbolType::Default
@ Default
MemberDefImpl::IMPL::cachedTypedefValue
const ClassDef * cachedTypedefValue
Definition: memberdef.cpp:1222
Doxygen::suppressDocWarnings
static bool suppressDocWarnings
Definition: doxygen.h:112
OutputList::writeObjectLink
void writeObjectLink(const QCString &ref, const QCString &file, const QCString &anchor, const QCString &name)
Definition: outputlist.h:141
VhdlDocGen::isMisc
static bool isMisc(const MemberDef *mdef)
Definition: vhdldocgen.cpp:2833
MemberDefImpl::IMPL::tspec
bool tspec
Definition: memberdef.cpp:1258
toClassDefMutable
ClassDefMutable * toClassDefMutable(Definition *d)
Definition: classdef.cpp:4944
MemberDefImpl::hasDetailedDescription
virtual bool hasDetailedDescription() const
Definition: memberdef.cpp:2491
OutputList::startMemberDeclaration
void startMemberDeclaration()
Definition: outputlist.h:310
MemberDefImpl::isFinal
virtual bool isFinal() const
Definition: memberdef.cpp:5028
MemberDefImpl::getClassDef
virtual const ClassDef * getClassDef() const
Definition: memberdef.cpp:4808
MemberDefMutable::setDefinition
virtual void setDefinition(const QCString &d)=0
MemberDefImpl::IMPL::hasDetailedDescriptionCached
bool hasDetailedDescriptionCached
Definition: memberdef.cpp:1250
MemberDefImpl::IMPL::extraTypeChars
QCString extraTypeChars
Definition: memberdef.cpp:1184
MemberDefImpl::isCopy
virtual bool isCopy() const
Definition: memberdef.cpp:5073
reg::search
bool search(const std::string &str, Match &match, const Ex &re, size_t pos)
Search in a given string str starting at position pos for a match against regular expression re.
Definition: regex.cpp:718
MemberDefImpl::isEnumerate
virtual bool isEnumerate() const
Definition: memberdef.cpp:4883
MemberDefImpl::isDestructor
virtual bool isDestructor() const
Definition: memberdef.cpp:4475
MemberDefImpl::isDelete
virtual bool isDelete() const
Definition: memberdef.cpp:5125
DefinitionMixin< MemberDefMutable >::getDefFileExtension
virtual QCString getDefFileExtension() const
Definition: definitionimpl.h:173
Translator::trCallerGraph
virtual QCString trCallerGraph()=0
MemberDefImpl::IMPL::accessorType
QCString accessorType
Definition: memberdef.cpp:1170
MemberDefImpl::_countReimplementedBy
size_t _countReimplementedBy() const
Definition: memberdef.cpp:2852
MemberDefImpl::IMPL::hasCallGraph
bool hasCallGraph
Definition: memberdef.cpp:1253
CodeSymbolType::Signal
@ Signal
MemberDef::initializer
virtual const QCString & initializer() const =0
FileDef::getOutputFileBase
virtual QCString getOutputFileBase() const =0
Foreign
@ Foreign
Definition: types.h:38
MemberDefMutable::writeLink
virtual void writeLink(OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, bool onlyText=FALSE) const =0
Definition::localName
virtual QCString localName() const =0
OutputList::endInlineMemberDoc
void endInlineMemberDoc()
Definition: outputlist.h:469
MemberDefImpl::isPublished
virtual bool isPublished() const
Definition: memberdef.cpp:5180
MemberDefImpl::isNew
virtual bool isNew() const
Definition: memberdef.cpp:5033
MemberDefImpl::IMPL::requiresClause
QCString requiresClause
Definition: memberdef.cpp:1186
OutputList::enable
void enable(OutputGenerator::OutputType o)
Definition: outputlist.cpp:108
MemberDefImpl::getEnumScope
virtual const MemberDef * getEnumScope() const
Definition: memberdef.cpp:5230
MemberDefImpl::_writeReimplements
void _writeReimplements(OutputList &ol) const
Definition: memberdef.cpp:2793
MemberDefImpl::IMPL::memberGroup
MemberGroup * memberGroup
Definition: memberdef.cpp:1214
DefinitionMixin< MemberDefMutable >::setOuterScope
virtual void setOuterScope(Definition *def)
Definition: definitionimpl.h:236
ClassDef::isLinkable
virtual bool isLinkable() const =0
return TRUE iff a link to this class is possible (either within this project, or as a cross-reference...
DefinitionMixin< MemberDefMutable >::writeSourceReffedBy
virtual void writeSourceReffedBy(OutputList &ol, const QCString &scopeName) const
Definition: definitionimpl.h:254
MemberDefImpl::getMemberSpecifiers
virtual uint64 getMemberSpecifiers() const
Definition: memberdef.cpp:4803
MemberDefImpl::IMPL::related
Relationship related
Definition: memberdef.cpp:1243
CodeSymbolType::Function
@ Function
MemberDefImpl::hasDocumentedEnumValues
virtual bool hasDocumentedEnumValues() const
Definition: memberdef.cpp:5215
CodeSymbolType::Interface
@ Interface
QCString::right
QCString right(size_t len) const
Definition: qcstring.h:217
OutputList::endCodeFragment
void endCodeFragment(const QCString &style)
Definition: outputlist.h:243
QCString::prepend
QCString & prepend(const char *s)
Definition: qcstring.h:339
OutputList::startDescForItem
void startDescForItem()
Definition: outputlist.h:280
qstrlen
uint qstrlen(const char *str)
Definition: qcstring.h:65
OutputList::endTextLink
void endTextLink()
Definition: outputlist.h:154
Entry::Published
static const uint64 Published
Definition: entry.h:186
MemberDefImpl::_hasVisibleCallerGraph
bool _hasVisibleCallerGraph() const
Definition: memberdef.cpp:5386
MemberDefImpl::IMPL::isDMember
bool isDMember
Definition: memberdef.cpp:1242
OutputList::startParagraph
void startParagraph(const QCString &classDef=QCString())
Definition: outputlist.h:107
DefinitionMixin< MemberDefMutable >::getSourceFileBase
virtual QCString getSourceFileBase() const
Definition: definitionimpl.h:160
MemberDef::getGroupDef
virtual const GroupDef * getGroupDef() const =0
MemberDefImpl::_writeMultiLineInitializer
void _writeMultiLineInitializer(OutputList &ol, const QCString &scopeName) const
Definition: memberdef.cpp:3190
Entry::NoExcept
static const uint64 NoExcept
Definition: entry.h:176
DefinitionMixin::getReference
virtual QCString getReference() const
Definition: definitionimpl.h:182
FileDef::displayName
virtual QCString displayName(bool=TRUE) const =0
createDocParser
std::unique_ptr< IDocParser > createDocParser()
Definition: docparser.cpp:179
MemberDefImpl::_writeCallGraph
void _writeCallGraph(OutputList &ol) const
Definition: memberdef.cpp:2734
FALSE
#define FALSE
Definition: qcstring.h:33
MemberDefImpl::_writeTypeConstraints
void _writeTypeConstraints(OutputList &ol) const
Definition: memberdef.cpp:2994
CodeSymbolType::Enumeration
@ Enumeration
MemberDefImpl::isTypeAlias
virtual bool isTypeAlias() const
Definition: memberdef.cpp:5115
ClassDef::anchor
virtual QCString anchor() const =0
Pure
@ Pure
Definition: types.h:29
OutputList::endBold
void endBold()
Definition: outputlist.h:304
SrcLangExt_Slice
@ SrcLangExt_Slice
Definition: types.h:59
OutputGenerator::Man
@ Man
Definition: outputgen.h:333
QCString
This is an alternative implementation of QCString.
Definition: qcstring.h:108