]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/libs/graph/example/graph_as_tree.cpp
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / boost / libs / graph / example / graph_as_tree.cpp
index 635cd179ba8e967aa06450dbaa73a01d51ba9f71..29058a3843670f2deaa3948cf9230e87b6cb8f20 100644 (file)
 #include <boost/cstdlib.hpp>
 #include <iostream>
 
-class tree_printer {
+class tree_printer
+{
 public:
-  template <typename Node, typename Tree> 
-  void preorder(Node, Tree&) {
-    std::cout << "(";
-  }
-  template <typename Node, typename Tree> 
-  void inorder(Node n, Tree& t)
-  {
-    std::cout << get(boost::vertex_name, t)[n];
-  }
-  template <typename Node, typename Tree> 
-  void postorder(Node, Tree&) {
-    std::cout << ")";
-  }
-  
+    template < typename Node, typename Tree > void preorder(Node, Tree&)
+    {
+        std::cout << "(";
+    }
+    template < typename Node, typename Tree > void inorder(Node n, Tree& t)
+    {
+        std::cout << get(boost::vertex_name, t)[n];
+    }
+    template < typename Node, typename Tree > void postorder(Node, Tree&)
+    {
+        std::cout << ")";
+    }
 };
 
 int main()
 {
-  using namespace boost;
-  typedef adjacency_list<vecS, vecS, directedS, 
-    property<vertex_name_t, std::string> > graph_t;
-  typedef graph_traits<graph_t>::vertex_descriptor vertex_t;
+    using namespace boost;
+    typedef adjacency_list< vecS, vecS, directedS,
+        property< vertex_name_t, std::string > >
+        graph_t;
+    typedef graph_traits< graph_t >::vertex_descriptor vertex_t;
+
+    graph_t g;
+
+    vertex_t a = add_vertex(g), b = add_vertex(g), c = add_vertex(g);
 
-  graph_t g;
+    add_edge(a, b, g);
+    add_edge(a, c, g);
 
-  vertex_t a = add_vertex(g),
-    b = add_vertex(g),
-    c = add_vertex(g);
+    typedef property_map< graph_t, vertex_name_t >::type vertex_name_map_t;
+    vertex_name_map_t name = get(vertex_name, g);
+    name[a] = "A";
+    name[b] = "B";
+    name[c] = "C";
 
-  add_edge(a, b, g);
-  add_edge(a, c, g);
-  
-  typedef property_map<graph_t, vertex_name_t>::type vertex_name_map_t;
-  vertex_name_map_t name = get(vertex_name, g);
-  name[a] = "A";
-  name[b] = "B";
-  name[c] = "C";
+    typedef iterator_property_map< std::vector< vertex_t >::iterator,
+        property_map< graph_t, vertex_index_t >::type >
+        parent_map_t;
+    std::vector< vertex_t > parent(num_vertices(g));
+    typedef graph_as_tree< graph_t, parent_map_t > tree_t;
+    tree_t t(
+        g, a, make_iterator_property_map(parent.begin(), get(vertex_index, g)));
 
-  typedef iterator_property_map<std::vector<vertex_t>::iterator,
-    property_map<graph_t, vertex_index_t>::type> parent_map_t;
-  std::vector<vertex_t> parent(num_vertices(g));
-  typedef graph_as_tree<graph_t, parent_map_t> tree_t;
-  tree_t t(g, a, make_iterator_property_map(parent.begin(), 
-                                            get(vertex_index, g)));
+    tree_printer vis;
+    traverse_tree(a, t, vis);
 
-  tree_printer vis;
-  traverse_tree(a, t, vis);
-  
-  return exit_success;
+    return exit_success;
 }