stdcpp/tsrc/Boost_test/graph/src/transitive_closure.cpp
changeset 0 e4d67989cc36
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stdcpp/tsrc/Boost_test/graph/src/transitive_closure.cpp	Tue Feb 02 02:01:42 2010 +0200
@@ -0,0 +1,63 @@
+// Copyright (c) Jeremy Siek 2001
+//
+// 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)
+
+// NOTE: this final is generated by libs/graph/doc/transitive_closure.w
+
+/*
+ * © Portions copyright (c) 2006-2007 Nokia Corporation.  All rights reserved.
+*/
+
+#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#error The transitive closure algorithm uses partial specialization.
+#endif
+
+#include <boost/graph/transitive_closure.hpp>
+#include <boost/graph/graphviz.hpp>
+#include <boost/graph/graph_utility.hpp>
+
+#ifdef __SYMBIAN32__
+#include "std_log_result.h"
+#define LOG_FILENAME_LINE __FILE__, __LINE__
+#endif
+
+int
+main(int, char *[])
+{
+  using namespace boost;
+  typedef property < vertex_name_t, char >Name;
+  typedef property < vertex_index_t, std::size_t, Name > Index;
+  typedef adjacency_list < listS, listS, directedS, Index > graph_t;
+  typedef graph_traits < graph_t >::vertex_descriptor vertex_t;
+  graph_t G;
+  std::vector < vertex_t > verts(4);
+  for (int i = 0; i < 4; ++i)
+    verts[i] = add_vertex(Index(i, Name('a' + i)), G);
+  add_edge(verts[1], verts[2], G);
+  add_edge(verts[1], verts[3], G);
+  add_edge(verts[2], verts[1], G);
+  add_edge(verts[3], verts[2], G);
+  add_edge(verts[3], verts[0], G);
+
+  std::cout << "Graph G:" << std::endl;
+  print_graph(G, get(vertex_name, G));
+
+  adjacency_list <> TC;
+  transitive_closure(G, TC);
+
+  std::cout << std::endl << "Graph G+:" << std::endl;
+  char name[] = "abcd";
+  print_graph(TC, name);
+  std::cout << std::endl;
+
+  std::ofstream out("tc-out.dot");
+  write_graphviz(out, TC, make_label_writer(name));
+  #ifdef __SYMBIAN32__
+	testResultXml("transitive_closure");
+	close_log_file();
+  #endif
+
+  return 0;
+}