summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorarseny.kapoulkine <arseny.kapoulkine@99668b35-9821-0410-8761-19e4c4f06640>2011-08-19 04:25:13 +0000
committerarseny.kapoulkine <arseny.kapoulkine@99668b35-9821-0410-8761-19e4c4f06640>2011-08-19 04:25:13 +0000
commit8a5144a927fb2659bc80d18620121d99cfcf1edc (patch)
tree3d12e21ae8a10c6eda7c0ffa2d10038126755d57 /src
parent1d6db79bd98e13a9fc009fb9d1114bc745b2b0b3 (diff)
Fixed unspecified bool conversion for MSVC CLR for the case when pugixml is compiled as unmanaged and calling code is compiled as managed. Fixes issue 121.
git-svn-id: http://pugixml.googlecode.com/svn/trunk@817 99668b35-9821-0410-8761-19e4c4f06640
Diffstat (limited to 'src')
-rw-r--r--src/pugixml.cpp24
-rw-r--r--src/pugixml.hpp8
2 files changed, 24 insertions, 8 deletions
diff --git a/src/pugixml.cpp b/src/pugixml.cpp
index 774de6c..7a6e946 100644
--- a/src/pugixml.cpp
+++ b/src/pugixml.cpp
@@ -3419,9 +3419,13 @@ namespace pugi
{
}
+ static void unspecified_bool_xml_attribute(xml_attribute***)
+ {
+ }
+
xml_attribute::operator xml_attribute::unspecified_bool_type() const
{
- return _attr ? &xml_attribute::_attr : 0;
+ return _attr ? unspecified_bool_xml_attribute : 0;
}
bool xml_attribute::operator!() const
@@ -3663,9 +3667,13 @@ namespace pugi
{
}
+ static void unspecified_bool_xml_node(xml_node***)
+ {
+ }
+
xml_node::operator xml_node::unspecified_bool_type() const
{
- return _root ? &xml_node::_root : 0;
+ return _root ? unspecified_bool_xml_node : 0;
}
bool xml_node::operator!() const
@@ -9160,9 +9168,13 @@ namespace pugi
return _attribute ? _node : _node.parent();
}
+ static void unspecified_bool_xpath_node(xpath_node***)
+ {
+ }
+
xpath_node::operator xpath_node::unspecified_bool_type() const
{
- return (_node || _attribute) ? &xpath_node::_node : 0;
+ return (_node || _attribute) ? unspecified_bool_xpath_node : 0;
}
bool xpath_node::operator!() const
@@ -9637,9 +9649,13 @@ namespace pugi
return _result;
}
+ static void unspecified_bool_xpath_query(xpath_query***)
+ {
+ }
+
xpath_query::operator xpath_query::unspecified_bool_type() const
{
- return _impl ? &xpath_query::_impl : 0;
+ return _impl ? unspecified_bool_xpath_query : 0;
}
bool xpath_query::operator!() const
diff --git a/src/pugixml.hpp b/src/pugixml.hpp
index 8e8f3e1..8fe34ec 100644
--- a/src/pugixml.hpp
+++ b/src/pugixml.hpp
@@ -273,7 +273,7 @@ namespace pugi
private:
xml_attribute_struct* _attr;
- typedef xml_attribute_struct* xml_attribute::*unspecified_bool_type;
+ typedef void (*unspecified_bool_type)(xml_attribute***);
public:
// Default constructor. Constructs an empty attribute.
@@ -355,7 +355,7 @@ namespace pugi
protected:
xml_node_struct* _root;
- typedef xml_node_struct* xml_node::*unspecified_bool_type;
+ typedef void (*unspecified_bool_type)(xml_node***);
public:
// Default constructor. Constructs an empty node.
@@ -899,7 +899,7 @@ namespace pugi
void* _impl;
xpath_parse_result _result;
- typedef void* xpath_query::*unspecified_bool_type;
+ typedef void (*unspecified_bool_type)(xpath_query***);
// Non-copyable semantics
xpath_query(const xpath_query&);
@@ -977,7 +977,7 @@ namespace pugi
xml_node _node;
xml_attribute _attribute;
- typedef xml_node xpath_node::*unspecified_bool_type;
+ typedef void (*unspecified_bool_type)(xpath_node***);
public:
// Default constructor; constructs empty XPath node