summaryrefslogtreecommitdiffstats
path: root/src/namespacedef.h
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2019-04-21 13:59:23 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2019-04-21 14:01:25 (GMT)
commit6216208b0a4288a41450e4d37226f0e4c492128c (patch)
tree07cee94d592cf127058652928be18534cc2a6b15 /src/namespacedef.h
parentd226bc27b3c80586234b9c7d8ba2abc500e3be02 (diff)
downloadDoxygen-6216208b0a4288a41450e4d37226f0e4c492128c.zip
Doxygen-6216208b0a4288a41450e4d37226f0e4c492128c.tar.gz
Doxygen-6216208b0a4288a41450e4d37226f0e4c492128c.tar.bz2
Improved const correctness and added support for inline namespaces
Diffstat (limited to 'src/namespacedef.h')
-rw-r--r--src/namespacedef.h26
1 files changed, 15 insertions, 11 deletions
diff --git a/src/namespacedef.h b/src/namespacedef.h
index bfa8c42..3be54f2 100644
--- a/src/namespacedef.h
+++ b/src/namespacedef.h
@@ -45,19 +45,20 @@ class NamespaceDef : virtual public Definition
virtual void writeDocumentation(OutputList &ol) = 0;
virtual void writeMemberPages(OutputList &ol) = 0;
- virtual void writeQuickMemberLinks(OutputList &ol,MemberDef *currentMd) const = 0;
+ virtual void writeQuickMemberLinks(OutputList &ol,const MemberDef *currentMd) const = 0;
virtual void writeTagFile(FTextStream &) = 0;
- virtual void insertClass(ClassDef *cd) = 0;
- virtual void insertNamespace(NamespaceDef *nd) = 0;
- virtual void insertMember(MemberDef *md) = 0;
+ virtual void insertClass(const ClassDef *cd) = 0;
+ virtual void insertNamespace(const NamespaceDef *nd) = 0;
+ virtual void insertMember(MemberDef *md) = 0; // md cannot be const, since setSectionList is called on it
virtual void computeAnchors() = 0;
- virtual int countMembers() = 0;
- virtual void addUsingDirective(NamespaceDef *nd) = 0;
- virtual NamespaceSDict *getUsedNamespaces() const = 0;
- virtual void addUsingDeclaration(Definition *def) = 0;
- virtual SDict<Definition> *getUsedClasses() const = 0;
+ virtual void countMembers() = 0;
+ virtual int numDocMembers() const = 0;
+ virtual void addUsingDirective(const NamespaceDef *nd) = 0;
+ virtual const NamespaceSDict *getUsedNamespaces() const = 0;
+ virtual void addUsingDeclaration(const Definition *def) = 0;
+ virtual const SDict<Definition> *getUsedClasses() const = 0;
virtual void combineUsingRelations() = 0;
virtual QCString displayName(bool=TRUE) const = 0;
virtual QCString localName() const = 0;
@@ -77,7 +78,7 @@ class NamespaceDef : virtual public Definition
virtual void sortMemberLists() = 0;
virtual Definition *findInnerCompound(const char *name) const = 0;
- virtual void addInnerCompound(Definition *d) = 0;
+ virtual void addInnerCompound(const Definition *d) = 0;
virtual void addListReferences() = 0;
virtual void setFileName(const QCString &fn) = 0;
@@ -103,7 +104,7 @@ class NamespaceDef : virtual public Definition
virtual ClassSDict *getExceptionSDict() const = 0;
/*! Returns the namespaces contained in this namespace */
- virtual NamespaceSDict *getNamespaceSDict() const = 0;
+ virtual const NamespaceSDict *getNamespaceSDict() const = 0;
virtual QCString title() const = 0;
virtual QCString compoundTypeString() const = 0;
@@ -119,6 +120,9 @@ NamespaceDef *createNamespaceDef(const char *defFileName,int defLine,int defColu
const char *refFile=0,const char*type=0,
bool isPublished=false);
+/** Factory method to create an alias of an existing namespace. Used for inline namespaces. */
+NamespaceDef *createNamespaceDefAlias(const Definition *newScope, const NamespaceDef *nd);
+
/** A list of NamespaceDef objects. */
class NamespaceList : public QList<NamespaceDef>
{