[svn] commit: r1021 - /trunk/src/lib/dns/cpp/rrsetlist.h

BIND 10 source code commits bind10-changes at lists.isc.org
Sat Feb 27 03:22:33 UTC 2010


Author: jinmei
Date: Sat Feb 27 03:22:33 2010
New Revision: 1021

Log:
clarify constness of const/normal iterators

Modified:
    trunk/src/lib/dns/cpp/rrsetlist.h

Modified: trunk/src/lib/dns/cpp/rrsetlist.h
==============================================================================
--- trunk/src/lib/dns/cpp/rrsetlist.h (original)
+++ trunk/src/lib/dns/cpp/rrsetlist.h Sat Feb 27 03:22:33 2010
@@ -36,7 +36,7 @@
         isc::Exception(file, line, what) {}
 };
 
-template <typename T>
+template <typename T, typename P, typename R>
 class RRsetListIterator :
         public std::iterator<std::input_iterator_tag, RRsetPtr> {
 public:
@@ -54,17 +54,21 @@
         ++it_;
         return (tmp);
     }
-    RRsetPtr& operator*() const
+    R operator*() const
     {
-        return (it_.operator*());
+        return (*it_);
     }
-    RRsetPtr* operator->() const
+    P operator->() const
     {
         return (it_.operator->());
     }
     bool operator==(const RRsetListIterator& other)
     {
         return (it_ == other.it_);
+    }
+    bool operator!=(const RRsetListIterator& other)
+    {
+        return (it_ != other.it_);
     }
     
 private:
@@ -80,9 +84,12 @@
 
     RRsetPtr operator[](RRType t) { return (this->findRRset(t)); }
 
-    typedef RRsetListIterator<std::vector<RRsetPtr>::iterator> iterator;
-    typedef RRsetListIterator<std::vector<RRsetPtr>::const_iterator>
-    const_iterator;
+    typedef RRsetListIterator<std::vector<RRsetPtr>::iterator,
+                              RRsetPtr*,
+                              RRsetPtr&> iterator;
+    typedef RRsetListIterator<std::vector<RRsetPtr>::const_iterator,
+                              const RRsetPtr*,
+                              const RRsetPtr&> const_iterator;
 
     const_iterator begin() const { return (const_iterator(rrsets_.begin())); }
     const_iterator end() const { return (const_iterator(rrsets_.end())); }




More information about the bind10-changes mailing list