From e4ae72937054324ccee6d67579d4fb7040d916dc Mon Sep 17 00:00:00 2001 From: "arseny.kapoulkine@gmail.com" Date: Wed, 14 Mar 2012 05:34:00 +0000 Subject: Dereferemce operators in both iterators are now const; this fixes iterator compatibility with parts of Boost Iterator (i.e. filter_iterator). It is now possible to damage the state of const_iterator by directly mutating internal handle - working around that introduces additional performance penalties and is generally extremely unlikely to be useful - constant iterator objects are rarely used. git-svn-id: http://pugixml.googlecode.com/svn/trunk@858 99668b35-9821-0410-8761-19e4c4f06640 --- src/pugixml.hpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/pugixml.hpp') diff --git a/src/pugixml.hpp b/src/pugixml.hpp index 1400fb1..44d4d76 100644 --- a/src/pugixml.hpp +++ b/src/pugixml.hpp @@ -597,7 +597,7 @@ namespace pugi friend class xml_node; private: - xml_node _wrap; + mutable xml_node _wrap; xml_node _parent; xml_node_iterator(xml_node_struct* ref, xml_node_struct* parent); @@ -623,8 +623,8 @@ namespace pugi bool operator==(const xml_node_iterator& rhs) const; bool operator!=(const xml_node_iterator& rhs) const; - xml_node& operator*(); - xml_node* operator->(); + xml_node& operator*() const; + xml_node* operator->() const; const xml_node_iterator& operator++(); xml_node_iterator operator++(int); @@ -639,7 +639,7 @@ namespace pugi friend class xml_node; private: - xml_attribute _wrap; + mutable xml_attribute _wrap; xml_node _parent; xml_attribute_iterator(xml_attribute_struct* ref, xml_node_struct* parent); @@ -665,8 +665,8 @@ namespace pugi bool operator==(const xml_attribute_iterator& rhs) const; bool operator!=(const xml_attribute_iterator& rhs) const; - xml_attribute& operator*(); - xml_attribute* operator->(); + xml_attribute& operator*() const; + xml_attribute* operator->() const; const xml_attribute_iterator& operator++(); xml_attribute_iterator operator++(int); -- cgit v1.2.3