Improved "realops" tester
[ipdf/code.git] / contrib / pugixml-1.4 / contrib / foreach.hpp
1 /*\r
2  * Boost.Foreach support for pugixml classes.\r
3  * This file is provided to the public domain.\r
4  * Written by Arseny Kapoulkine ([email protected])\r
5  */\r
6 \r
7 #ifndef HEADER_PUGIXML_FOREACH_HPP\r
8 #define HEADER_PUGIXML_FOREACH_HPP\r
9 \r
10 #include "pugixml.hpp"\r
11 \r
12 /*\r
13  * These types add support for BOOST_FOREACH macro to xml_node and xml_document classes (child iteration only).\r
14  * Example usage:\r
15  * BOOST_FOREACH(xml_node n, doc) {}\r
16  */\r
17 \r
18 namespace boost\r
19 {\r
20         template <typename> struct range_mutable_iterator;\r
21         template <typename> struct range_const_iterator;\r
22 \r
23         template<> struct range_mutable_iterator<pugi::xml_node>\r
24         {\r
25                 typedef pugi::xml_node::iterator type;\r
26         };\r
27 \r
28         template<> struct range_const_iterator<pugi::xml_node>\r
29         {\r
30                 typedef pugi::xml_node::iterator type;\r
31         };\r
32 \r
33         template<> struct range_mutable_iterator<pugi::xml_document>\r
34         {\r
35                 typedef pugi::xml_document::iterator type;\r
36         };\r
37 \r
38         template<> struct range_const_iterator<pugi::xml_document>\r
39         {\r
40                 typedef pugi::xml_document::iterator type;\r
41         };\r
42 }\r
43 \r
44 /*\r
45  * These types add support for BOOST_FOREACH macro to xml_node and xml_document classes (child/attribute iteration).\r
46  * Example usage:\r
47  * BOOST_FOREACH(xml_node n, children(doc)) {}\r
48  * BOOST_FOREACH(xml_node n, attributes(doc)) {}\r
49  */\r
50 \r
51 namespace pugi\r
52 {\r
53         inline xml_object_range<xml_node_iterator> children(const pugi::xml_node& node)\r
54         {\r
55         return node.children();\r
56         }\r
57 \r
58         inline xml_object_range<xml_attribute_iterator> attributes(const pugi::xml_node& node)\r
59         {\r
60         return node.attributes();\r
61         }\r
62 }\r
63 \r
64 #endif\r

UCC git Repository :: git.ucc.asn.au