Added < operator for iterator class.
authorcantor <cantor@de75baf8-a10c-0410-a50a-987c0e22f00f>
Fri, 9 Nov 2007 04:14:10 +0000 (04:14 +0000)
committercantor <cantor@de75baf8-a10c-0410-a50a-987c0e22f00f>
Fri, 9 Nov 2007 04:14:10 +0000 (04:14 +0000)
Another attempt to get iterator nested types declared portably.

git-svn-id: https://svn.middleware.georgetown.edu/cpp-xmltooling/trunk@419 de75baf8-a10c-0410-a50a-987c0e22f00f

xmltooling/util/XMLObjectChildrenList.h

index df6b860..f897df0 100644 (file)
@@ -91,12 +91,13 @@ namespace xmltooling {
         template <class _Tx, class _Tz> friend class XMLObjectChildrenList;
         template <class _Tx, class _Tz> friend class XMLObjectPairList;
     public:
-        typedef typename _Ty::value_type value_type;
-        typedef typename _Ty::reference reference;
-        typedef typename _Ty::pointer pointer;
+        typedef typename std::iterator_traits<typename _Ty::iterator>::iterator_category iterator_category;
+        typedef typename std::iterator_traits<typename _Ty::iterator>::value_type value_type;
+        typedef typename std::iterator_traits<typename _Ty::iterator>::difference_type difference_type;
+        typedef typename std::iterator_traits<typename _Ty::iterator>::pointer pointer;
+        typedef typename std::iterator_traits<typename _Ty::iterator>::reference reference;
         typedef typename _Ty::const_reference const_reference;
         typedef typename _Ty::const_pointer const_pointer;
-        typedef typename _Ty::difference_type difference_type;
 
         XMLObjectChildrenIterator() {
         }
@@ -180,6 +181,10 @@ namespace xmltooling {
                    // test for iterator inequality
                    return (!(m_iter == _Right.m_iter));
            }
+           
+           bool operator<(const XMLObjectChildrenIterator &_Right) const {
+               return (m_iter < _Right.m_iter);
+           }
         /// @endcond
     };