--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/epoc32/include/stdapis/boost/graph/tree_traits.hpp Tue Mar 16 16:12:26 2010 +0000
@@ -0,0 +1,43 @@
+// (C) Copyright Jeremy Siek 1999.
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_TREE_STRUCTURE_HPP
+#define BOOST_TREE_STRUCTURE_HPP
+
+namespace boost {
+
+ template <class T>
+ struct tree_traits {
+ typedef typename T::node_descriptor node_descriptor;
+ typedef typename T::children_iterator children_iterator;
+ };
+
+
+ template <class Tree, class TreeVisitor>
+ void traverse_tree(typename tree_traits<Tree>::node_descriptor v,
+ Tree& t, TreeVisitor visitor)
+ {
+ visitor.preorder(v, t);
+ typename tree_traits<Tree>::children_iterator i, end;
+ tie(i, end) = children(v, t);
+ if (i != end) {
+ traverse_tree(*i++, t, visitor);
+ visitor.inorder(v, t);
+ while (i != end)
+ traverse_tree(*i++, t, visitor);
+ } else
+ visitor.inorder(v, t);
+ visitor.postorder(v, t);
+ }
+
+ struct null_tree_visitor {
+ template <typename Node, typename Tree> void preorder(Node, Tree&) { }
+ template <typename Node, typename Tree> void inorder(Node, Tree&) { }
+ template <typename Node, typename Tree> void postorder(Node, Tree&) { }
+ };
+
+} /* namespace boost */
+
+#endif /* BOOST_TREE_STRUCTURE_HPP */