summaryrefslogtreecommitdiff
path: root/src/pugixml.hpp
diff options
context:
space:
mode:
authorarseny.kapoulkine@gmail.com <arseny.kapoulkine@gmail.com@99668b35-9821-0410-8761-19e4c4f06640>2012-03-14 05:34:00 +0000
committerarseny.kapoulkine@gmail.com <arseny.kapoulkine@gmail.com@99668b35-9821-0410-8761-19e4c4f06640>2012-03-14 05:34:00 +0000
commite4ae72937054324ccee6d67579d4fb7040d916dc (patch)
tree829afc827c5eb3b2568e52c5b1c532328046f82a /src/pugixml.hpp
parent23f891a92bddc38dce8c99674edd31281eaf7ca8 (diff)
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
Diffstat (limited to 'src/pugixml.hpp')
-rw-r--r--src/pugixml.hpp12
1 files changed, 6 insertions, 6 deletions
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);