summaryrefslogtreecommitdiffstats
path: root/src/memberlist.h
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2021-01-04 13:33:02 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2021-01-04 13:36:40 (GMT)
commitef5be2c99caa8e5fbc1cec3ec53e91b2c929f613 (patch)
treef2493e4f41d0bfe2105facffdd3c46287bf516ab /src/memberlist.h
parent0252f61004cada8f9e10644b850dd6ba47d61438 (diff)
downloadDoxygen-ef5be2c99caa8e5fbc1cec3ec53e91b2c929f613.zip
Doxygen-ef5be2c99caa8e5fbc1cec3ec53e91b2c929f613.tar.gz
Doxygen-ef5be2c99caa8e5fbc1cec3ec53e91b2c929f613.tar.bz2
Refactoring: modernize getMemberLists()
Diffstat (limited to 'src/memberlist.h')
-rw-r--r--src/memberlist.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/memberlist.h b/src/memberlist.h
index 200767d..d2433f4 100644
--- a/src/memberlist.h
+++ b/src/memberlist.h
@@ -17,6 +17,7 @@
#define MEMBERLIST_H
#include <vector>
+#include <algorithm>
#include <qlist.h>
#include "memberdef.h"
@@ -131,6 +132,25 @@ class MemberLinkedRefMap : public LinkedRefMap<const MemberDef>
{
};
+class MemberLists : public std::vector<MemberList>
+{
+ public:
+ MemberLists() = default;
+ MemberList &get(MemberListType lt)
+ {
+ // find the list with the given type
+ auto it = std::find_if(begin(),end(),[&lt](const auto &ml) { return ml.listType()==lt; });
+ if (it!=end()) return *it;
+ // or create a new list if it is not found
+ emplace_back(lt);
+ return back();
+ }
+
+ private:
+ MemberLists(const MemberLists &) = delete;
+ MemberLists &operator=(const MemberLists &) = delete;
+};
+
int genericCompareMembers(const MemberDef *c1,const MemberDef *c2);
#endif