diff options
| author | arseny.kapoulkine <arseny.kapoulkine@99668b35-9821-0410-8761-19e4c4f06640> | 2010-07-19 09:57:32 +0000 | 
|---|---|---|
| committer | arseny.kapoulkine <arseny.kapoulkine@99668b35-9821-0410-8761-19e4c4f06640> | 2010-07-19 09:57:32 +0000 | 
| commit | 7d24b9b5655d584b6dc8b89df7cbd58d2e940a81 (patch) | |
| tree | 0301baa043cd688068f6ffa11ad56d284031e664 /contrib | |
| parent | 86ac39edb09647b83784c078f9ea3bd3b7a7d4e8 (diff) | |
Set svn:eol-style to native for all text files
git-svn-id: http://pugixml.googlecode.com/svn/trunk@607 99668b35-9821-0410-8761-19e4c4f06640
Diffstat (limited to 'contrib')
| -rw-r--r-- | contrib/foreach.hpp | 204 | 
1 files changed, 102 insertions, 102 deletions
diff --git a/contrib/foreach.hpp b/contrib/foreach.hpp index c413f1d..efe6d6d 100644 --- a/contrib/foreach.hpp +++ b/contrib/foreach.hpp @@ -1,102 +1,102 @@ -/*
 - * Boost.Foreach support for pugixml classes.
 - * This file is provided to the public domain.
 - * Written by Arseny Kapoulkine (arseny.kapoulkine@gmail.com)
 - */
 -
 -#ifndef HEADER_PUGIXML_FOREACH_HPP
 -#define HEADER_PUGIXML_FOREACH_HPP
 -
 -#include "pugixml.hpp"
 -
 -/*
 - * These types add support for BOOST_FOREACH macro to xml_node and xml_document classes (child iteration only).
 - * Example usage:
 - * BOOST_FOREACH(xml_node n, doc) {}
 - */
 -
 -namespace boost
 -{
 -	template <typename> struct range_mutable_iterator;
 -	template <typename> struct range_const_iterator;
 -
 -	template<> struct range_mutable_iterator<pugi::xml_node>
 -	{
 -		typedef pugi::xml_node::iterator type;
 -	};
 -
 -	template<> struct range_const_iterator<pugi::xml_node>
 -	{
 -		typedef pugi::xml_node::iterator type;
 -	};
 -
 -	template<> struct range_mutable_iterator<pugi::xml_document>
 -	{
 -		typedef pugi::xml_document::iterator type;
 -	};
 -
 -	template<> struct range_const_iterator<pugi::xml_document>
 -	{
 -		typedef pugi::xml_document::iterator type;
 -	};
 -}
 -
 -/*
 - * These types add support for BOOST_FOREACH macro to xml_node and xml_document classes (child/attribute iteration).
 - * Example usage:
 - * BOOST_FOREACH(xml_node n, children(doc)) {}
 - * BOOST_FOREACH(xml_node n, attributes(doc)) {}
 - */
 -
 -namespace pugi
 -{
 -	struct xml_node_children_adapter
 -	{
 -		typedef pugi::xml_node::iterator iterator;
 -		typedef pugi::xml_node::iterator const_iterator;
 -
 -		xml_node node;
 -
 -		const_iterator begin() const
 -		{
 -			return node.begin();
 -		}
 -
 -		const_iterator end() const
 -		{
 -			return node.end();
 -		}
 -	};
 -
 -	xml_node_children_adapter children(const pugi::xml_node& node)
 -	{
 -		xml_node_children_adapter result = {node};
 -		return result;
 -	}
 -
 -	struct xml_node_attribute_adapter
 -	{
 -		typedef pugi::xml_node::attribute_iterator iterator;
 -		typedef pugi::xml_node::attribute_iterator const_iterator;
 -
 -		xml_node node;
 -
 -		const_iterator begin() const
 -		{
 -			return node.attributes_begin();
 -		}
 -
 -		const_iterator end() const
 -		{
 -			return node.attributes_end();
 -		}
 -	};
 -
 -	xml_node_attribute_adapter attributes(const pugi::xml_node& node)
 -	{
 -		xml_node_attribute_adapter result = {node};
 -		return result;
 -	}
 -}
 -
 -#endif
 +/* + * Boost.Foreach support for pugixml classes. + * This file is provided to the public domain. + * Written by Arseny Kapoulkine (arseny.kapoulkine@gmail.com) + */ + +#ifndef HEADER_PUGIXML_FOREACH_HPP +#define HEADER_PUGIXML_FOREACH_HPP + +#include "pugixml.hpp" + +/* + * These types add support for BOOST_FOREACH macro to xml_node and xml_document classes (child iteration only). + * Example usage: + * BOOST_FOREACH(xml_node n, doc) {} + */ + +namespace boost +{ +	template <typename> struct range_mutable_iterator; +	template <typename> struct range_const_iterator; + +	template<> struct range_mutable_iterator<pugi::xml_node> +	{ +		typedef pugi::xml_node::iterator type; +	}; + +	template<> struct range_const_iterator<pugi::xml_node> +	{ +		typedef pugi::xml_node::iterator type; +	}; + +	template<> struct range_mutable_iterator<pugi::xml_document> +	{ +		typedef pugi::xml_document::iterator type; +	}; + +	template<> struct range_const_iterator<pugi::xml_document> +	{ +		typedef pugi::xml_document::iterator type; +	}; +} + +/* + * These types add support for BOOST_FOREACH macro to xml_node and xml_document classes (child/attribute iteration). + * Example usage: + * BOOST_FOREACH(xml_node n, children(doc)) {} + * BOOST_FOREACH(xml_node n, attributes(doc)) {} + */ + +namespace pugi +{ +	struct xml_node_children_adapter +	{ +		typedef pugi::xml_node::iterator iterator; +		typedef pugi::xml_node::iterator const_iterator; + +		xml_node node; + +		const_iterator begin() const +		{ +			return node.begin(); +		} + +		const_iterator end() const +		{ +			return node.end(); +		} +	}; + +	xml_node_children_adapter children(const pugi::xml_node& node) +	{ +		xml_node_children_adapter result = {node}; +		return result; +	} + +	struct xml_node_attribute_adapter +	{ +		typedef pugi::xml_node::attribute_iterator iterator; +		typedef pugi::xml_node::attribute_iterator const_iterator; + +		xml_node node; + +		const_iterator begin() const +		{ +			return node.attributes_begin(); +		} + +		const_iterator end() const +		{ +			return node.attributes_end(); +		} +	}; + +	xml_node_attribute_adapter attributes(const pugi::xml_node& node) +	{ +		xml_node_attribute_adapter result = {node}; +		return result; +	} +} + +#endif  | 
