aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Index/SelectorMap.h
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2009-07-29 23:41:33 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2009-07-29 23:41:33 +0000
commitb325146ac7f8e197b6d12aa5c11a3f0a7244e870 (patch)
treeb93b84085c2ad67cc28d701d922a25858500763b /include/clang/Index/SelectorMap.h
parent66570b230941651245accbc5680b60e904eb993c (diff)
Use a STL helper template 'pair_value_iterator', by both DeclReferenceMap and SelectorMap.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77545 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Index/SelectorMap.h')
-rw-r--r--include/clang/Index/SelectorMap.h44
1 files changed, 3 insertions, 41 deletions
diff --git a/include/clang/Index/SelectorMap.h b/include/clang/Index/SelectorMap.h
index 4cd10cc4f6..0fb6afb741 100644
--- a/include/clang/Index/SelectorMap.h
+++ b/include/clang/Index/SelectorMap.h
@@ -16,6 +16,7 @@
#define LLVM_CLANG_INDEX_SELECTORMAP_H
#include "clang/Index/ASTLocation.h"
+#include "clang/Index/STLExtras.h"
#include "clang/Basic/IdentifierTable.h"
#include <map>
@@ -29,53 +30,14 @@ namespace idx {
///
/// References are mapped and retrieved using the canonical decls.
class SelectorMap {
-
- template <typename iter_type>
- class wrap_pair_iterator {
- iter_type I;
-
- wrap_pair_iterator(iter_type i) : I(i) { }
- friend class SelectorMap;
-
- public:
- typedef typename iter_type::value_type::second_type value_type;
- typedef value_type& reference;
- typedef value_type* pointer;
- typedef typename iter_type::iterator_category iterator_category;
- typedef typename iter_type::difference_type difference_type;
-
- wrap_pair_iterator() { }
-
- reference operator*() const { return I->second; }
- pointer operator->() const { return &I->second; }
-
- wrap_pair_iterator& operator++() {
- ++I;
- return *this;
- }
-
- wrap_pair_iterator operator++(int) {
- wrap_pair_iterator tmp(*this);
- ++(*this);
- return tmp;
- }
-
- friend bool operator==(wrap_pair_iterator L, wrap_pair_iterator R) {
- return L.I == R.I;
- }
- friend bool operator!=(wrap_pair_iterator L, wrap_pair_iterator R) {
- return L.I != R.I;
- }
- };
-
public:
explicit SelectorMap(ASTContext &Ctx);
typedef std::multimap<Selector, ObjCMethodDecl *> SelMethMapTy;
typedef std::multimap<Selector, ASTLocation> SelRefMapTy;
- typedef wrap_pair_iterator<SelMethMapTy::iterator> method_iterator;
- typedef wrap_pair_iterator<SelRefMapTy::iterator> astlocation_iterator;
+ typedef pair_value_iterator<SelMethMapTy::iterator> method_iterator;
+ typedef pair_value_iterator<SelRefMapTy::iterator> astlocation_iterator;
method_iterator methods_begin(Selector Sel) const;
method_iterator methods_end(Selector Sel) const;