/*
- * Copyright 2001-2006 Internet2
+ * Copyright 2001-2007 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*/
/**
- * @file XMLObjectChildrenList.h
+ * @file xmltooling/util/XMLObjectChildrenList.h
*
* STL-compatible container wrapper
*/
#define __xmltooling_list_h__
#include <xmltooling/exceptions.h>
+#include <xmltooling/XMLObject.h>
+
+#include <list>
/**
* Shorthand for an XMLObjectChildrenList wrapped around a vector
template <class _Tx, class _Tz> friend class XMLObjectChildrenList;
template <class _Tx, class _Tz> friend class XMLObjectPairList;
public:
- typedef typename _Ty::iterator::iterator_category iterator_category;
- typedef typename _Ty::iterator::value_type value_type;
- typedef typename _Ty::iterator::reference reference;
- typedef typename _Ty::iterator::pointer pointer;
- typedef typename _Ty::const_iterator::reference const_reference;
- typedef typename _Ty::const_iterator::pointer const_pointer;
- typedef typename _Ty::iterator::difference_type difference_type;
+ 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;
XMLObjectChildrenIterator() {
}
}
const_reference operator->() const {
- return *(m_iter.operator->());
+ return *m_iter;
}
XMLObjectChildrenIterator& operator++() {
// test for iterator inequality
return (!(m_iter == _Right.m_iter));
}
+
+ bool operator<(const XMLObjectChildrenIterator &_Right) const {
+ return (m_iter < _Right.m_iter);
+ }
/// @endcond
};