[glibmm] Allow comparison of const and non-const ustring iterators



commit da6b22e7ec6e5e03b4875c6d2c2e4baabbbe1f35
Author: Chris Vine <chris cvine freeserve co uk>
Date:   Wed May 6 15:19:45 2009 +0200

    Allow comparison of const and non-const ustring iterators
    
    * glib/glibmm/ustring.h (ustring_Iterator<>): Turn the relational
    operators into non-templated functions, and rely on the implicit
    conversion of ustring::iterator to ustring::const_iterator.  This
    makes the operators work with mixed argument types. (bgo #580773)
---
 ChangeLog             |    7 +++++++
 glib/glibmm/ustring.h |   24 ++++++++++++------------
 2 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 824acdb..4269a01 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2009-05-06  Chris Vine  <chris cvine freeserve co uk>
+
+	* glib/glibmm/ustring.h (ustring_Iterator<>): Turn the relational
+	operators into non-templated functions, and rely on the implicit
+	conversion of ustring::iterator to ustring::const_iterator.  This
+	makes the operators work with mixed argument types. (bgo #580773)
+
 2009-04-23  Johannes Schmid <jschmid openismus com>
 
 	* tools/pm/DocParser.pm:
diff --git a/glib/glibmm/ustring.h b/glib/glibmm/ustring.h
index 90cb56d..0a7614c 100644
--- a/glib/glibmm/ustring.h
+++ b/glib/glibmm/ustring.h
@@ -991,43 +991,43 @@ const ustring_Iterator<T> ustring_Iterator<T>::operator--(int)
 
 
 /** @relates Glib::ustring_Iterator */
-template <class T> inline
-bool operator==(const ustring_Iterator<T>& lhs, const ustring_Iterator<T>& rhs)
+inline
+bool operator==(const Glib::ustring::const_iterator& lhs, const Glib::ustring::const_iterator& rhs)
 {
   return (lhs.base() == rhs.base());
 }
 
 /** @relates Glib::ustring_Iterator */
-template <class T> inline
-bool operator!=(const ustring_Iterator<T>& lhs, const ustring_Iterator<T>& rhs)
+inline
+bool operator!=(const Glib::ustring::const_iterator& lhs, const Glib::ustring::const_iterator& rhs)
 {
   return (lhs.base() != rhs.base());
 }
 
 /** @relates Glib::ustring_Iterator */
-template <class T> inline
-bool operator<(const ustring_Iterator<T>& lhs, const ustring_Iterator<T>& rhs)
+inline
+bool operator<(const Glib::ustring::const_iterator& lhs, const Glib::ustring::const_iterator& rhs)
 {
   return (lhs.base() < rhs.base());
 }
 
 /** @relates Glib::ustring_Iterator */
-template <class T> inline
-bool operator>(const ustring_Iterator<T>& lhs, const ustring_Iterator<T>& rhs)
+inline
+bool operator>(const Glib::ustring::const_iterator& lhs, const Glib::ustring::const_iterator& rhs)
 {
   return (lhs.base() > rhs.base());
 }
 
 /** @relates Glib::ustring_Iterator */
-template <class T> inline
-bool operator<=(const ustring_Iterator<T>& lhs, const ustring_Iterator<T>& rhs)
+inline
+bool operator<=(const Glib::ustring::const_iterator& lhs, const Glib::ustring::const_iterator& rhs)
 {
   return (lhs.base() <= rhs.base());
 }
 
 /** @relates Glib::ustring_Iterator */
-template <class T> inline
-bool operator>=(const ustring_Iterator<T>& lhs, const ustring_Iterator<T>& rhs)
+inline
+bool operator>=(const Glib::ustring::const_iterator& lhs, const Glib::ustring::const_iterator& rhs)
 {
   return (lhs.base() >= rhs.base());
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]